Retrieve Issue Custom Attributes Mapped to an Issue Type (new)
This tutorial demonstrates how to retrieve issue custom attributes mapped to a specific issue type or sub-type.
In BIM 360 Project Admin you can create issue custom attributes and add them to issue types and issue sub-types in three different ways:
- Add custom attributes to all issue types (container) in the project; all types and sub-types inherit the mapping.
- Add custom attributes to a specific type; the type’s sub-types inherit the mapping.
- Add custom attributes to a specific sub-type.

For more information see the help documentation.
You can retrieve custom attributes that were added to a type or sub-type by calling GET issue-attribute-mappings, however, it only returns custom attributes that were directly added to the types and sub-types; it does not retrieve custom attributes that were inherited by the types or subtypes. This tutorial explains how to retrieve both custom attributes that were directly added to a type or sub-type and custom attributes that they inherited. The steps include retrieving the ID of the type or sub-type, finding the ID of the sub-type’s type (only relevant if you want to find the mapping for a sub-type), and retrieving all the custom attributes that were added to the type or sub-type.
Before You Begin
- Register an app
- Acquire a 3-legged OAuth token with the
data:read
scope. - Verify that you have access to the relevant BIM 360 account and BIM 360 project. (To create a new BIM 360 project, see POST projects).
- Find the Issues container ID for the project. In this example, assume the container ID is
e59adc9d-2677-4afc-a800-4bc42101f7d8
.
Step 1: Find the Type ID
You first need to call GET issue-types to find the ID of the issue type or sub-type you want to find the custom attribute mappings for. Note that to include sub-type IDs in the response payload, you need to add the include=subtypes
parameter to the request.
Request
curl -X GET -H "Authorization: Bearer nFRJxzCD8OOUr7hzBwbr06D76zAT" "https://developer.api.autodesk.com/issues/v2/containers/2b26ddea-34a8-4f11-b352-2a1406ec454e/issue-types?include=subtypes"
Response
{
"pagination": {
"limit": 200,
"offset": 0,
"totalResults": 1
},
"results": [
{
"id": "72b4d9a9-52c5-41a2-8e09-c119f590b183",
"containerId": "e59adc9d-2677-4afc-a800-4bc42101f7d8",
"title": "Coordination",
"createdBy": "System",
"updatedBy": "System",
"deletedBy": null,
"statusSet": "basic",
"createdAt": "2019-01-08T23:31:30.163Z",
"updatedAt": "2019-01-08T23:31:30.163Z",
"deletedAt": null,
"subtypes": [
{
"id": "65d1d70f-c996-4c4d-8968-afb3447a3a50",
"issueTypeId": "72b4d9a9-52c5-41a2-8e09-c119f590b183",
"title": "Coordination",
"createdBy": "System",
"updatedBy": "System",
"deletedBy": null,
"createdAt": "2019-01-08T23:31:30.170Z",
"updatedAt": "2019-01-08T23:31:30.170Z",
"deletedAt": null,
"isActive": true,
"orderIndex": 0,
"isReadOnly": true,
"permittedActions": [
"change_order"
],
"permittedAttributes": []
},
{
"id": "0d54731e-6bbc-4d77-949b-1ced6b0292da",
"issueTypeId": "72b4d9a9-52c5-41a2-8e09-c119f590b183",
"title": "Clash",
"createdBy": "System",
"updatedBy": "System",
"deletedBy": null,
"createdAt": "2019-01-08T23:31:30.170Z",
"updatedAt": "2019-01-08T23:31:30.170Z",
"deletedAt": null,
"isActive": true,
"orderIndex": 1,
"isReadOnly": true,
"permittedActions": [
"change_order",
"edit"
],
"permittedAttributes": [
"isActive"
]
}
],
"isActive": true,
"orderIndex": 1,
"permittedActions": [
"change_order",
"edit"
],
"permittedAttributes": [
"isActive"
]
}
]
}
If you want to find the custom attributes that were added to a type, for example Coordination
, note the type ID (results.id
) - 72b4d9a9-52c5-41a2-8e09-c119f590b183
. You will also need the container ID (e59adc9d-2677-4afc-a800-4bc42101f7d8
) so that you can check if any custom attributes were added directly to the container and were inherited by the type.
If you want to find the custom attributes that were added to a sub-type, for example, Clash
, you need to do the following:
- Note the sub-type ID (
results.subtypes.id
) -0d54731e-6bbc-4d77-949b-1ced6b0292da
. - Note the type ID of the sub-type to check if any custom attributes were added directly to the type and inherited by the sub-type. To find the type ID, check the sub-type’s
issueTypeId
(results-subtypes.issueTypeId
) -72b4d9a9-52c5-41a2-8e09-c119f590b183
. - You will also need the container ID (
e59adc9d-2677-4afc-a800-4bc42101f7d8
) so that you can check if any custom attributes were added directly to the container and were inherited by the sub-type.
Step 2: Find the Mapped Custom Attributes
Call GET issue-attribute-mappings to find the custom attributes that were added to the type or sub-type.
In this example, assume you want to find the custom attributes that were added to a sub-type (Clash
- 0d54731e-6bbc-4d77-949b-1ced6b0292da
). You will need to search the results for:
- Custom attributes that were directly added to the sub-type (
Clash
-0d54731e-6bbc-4d77-949b-1ced6b0292da
). - Custom attributes that were added to the sub-type’s type (
Coordination
-72b4d9a9-52c5-41a2-8e09-c119f590b183
), and were inherited by the sub-type. - Custom attributes were added to the container (
e59adc9d-2677-4afc-a800-4bc42101f7d8
) and were inherited by the sub-type.
If you only need to find the custom attributes for one sub-type, you can use the filter[mappedItemId]
filter to filter out custom attributes that are not associated with the sub-type.
Request
curl -X GET -H "Authorization: Bearer nFRJxzCD8OOUr7hzBwbr06D76zAT" "https://developer.api.autodesk.com/issues/v2/containers/e59adc9d-2677-4afc-a800-4bc42101f7d8/issue-attribute-mappings?filter[mappedItemId]=0d54731e-6bbc-4d77-949b-1ced6b0292da,72b4d9a9-52c5-41a2-8e09-c119f590b183,e59adc9d-2677-4afc-a800-4bc42101f7d8"
Response
{
"pagination": {
"limit": 200,
"offset": 0,
"totalResults": 3
},
"results": [
{
"id": "86afb15e-09cb-46aa-8b73-c01e2f43bfe5",
"containerId": "e59adc9d-2677-4afc-a800-4bc42101f7d8",
"attributeDefinitionId": "c41750ab-9189-4d0e-9b80-c9ac0f9a1a62",
"mappedItemId": "e59adc9d-2677-4afc-a800-4bc42101f7d8",
"mappedItemType": "container",
"order": 0,
"isRequired": false,
"createdBy": "System",
"updatedBy": "System",
"deletedBy": null,
"createdAt": "2019-01-31T16:44:31.190Z",
"updatedAt": "2019-01-31T16:44:31.190Z",
"deletedAt": null,
"permittedActions": [
"change_order",
"edit",
"delete"
],
"permittedAttributes": [
"isRequired"
]
},
{
"id": "c9088c83-70e4-4630-af07-c5e96d084bb8",
"containerId": "e59adc9d-2677-4afc-a800-4bc42101f7d8",
"attributeDefinitionId": "7f7e94fb-e00d-4fb6-9cf7-c18bb8e5e891",
"mappedItemId": "72b4d9a9-52c5-41a2-8e09-c119f590b183",
"mappedItemType": "issueType",
"order": 0,
"isRequired": false,
"createdBy": "System",
"updatedBy": "System",
"deletedBy": null,
"createdAt": "2019-01-13T09:48:30.425Z",
"updatedAt": "2019-01-13T09:48:30.425Z",
"deletedAt": null,
"permittedActions": [
"change_order",
"edit",
"delete"
],
"permittedAttributes": [
"isRequired"
]
},
{
"id": "75919b67-3716-48e6-b25a-5cda566b8119",
"containerId": "e59adc9d-2677-4afc-a800-4bc42101f7d8",
"attributeDefinitionId": "8g3k94fb-e00d-4fb6-9cf7-c18bb8e5c325",
"mappedItemId": "0d54731e-6bbc-4d77-949b-1ced6b0292da",
"mappedItemType": "issueSubtype",
"order": 0,
"isRequired": false,
"createdBy": "System",
"updatedBy": "System",
"deletedBy": null,
"createdAt": "2019-01-21T09:58:42.300Z",
"updatedAt": "2019-01-21T09:58:42.300Z",
"deletedAt": null,
"permittedActions": [
"change_order",
"edit",
"delete"
],
"permittedAttributes": [
"isRequired"
]
}
]
}
If you need to find the custom attributes (results.attributeDefinitionId
) for more than one sub-type, you need to search the results (results.mappedItemId
and results.mappedItemType
). For example, for the Clash sub-type, you need to search for the following:
- Sub-type ID (
Clash
-8g3k94fb-e00d-4fb6-9cf7-c18bb8e5c325
) - custom attributes that were added directly to the sub-type. - Type ID (
Coordination
-7f7e94fb-e00d-4fb6-9cf7-c18bb8e5e891
) - custom attributes that were added to the sub-type’s type and inherited by the sub-type. - Container ID (
c41750ab-9189-4d0e-9b80-c9ac0f9a1a62
) - customer attributes that were added to the container and inherited by the sub-type.
To find more details about the custom attributes (results.attributeDefinitionId
) such as the titles and descriptions, call GET issue-attribute-definitions. The value for results.id
in GET issue-attribute-definitions corresponds to the value for results.attributeDefinitionId
in GET issue-attribute mappings.