Request

Response

    RFIs
    PATCH

    rfis/:id

    Updates a BIM 360 Project Management RFI.

    If the RFI is in Draft status, it can only be updated by the user who created the RFI. For all other statuses, it can only be updated by the user who was assigned to the RFI.

    To verify the statuses that the user can transition the RFI to, the attributes that you are required to specify when transitioning the RFI to the new status, and the potential assignees for each status, call GET rfis/:id and check the permittedActions section. Note that you need to select an assignee when you transition the RFI to another status.

    The list of permitted transitions that appear in the response payload is dependent on the workflow roles that were assigned to the user and the RFI workflow that was selected for the project.

    Note that you cannot currently use the RFIs API to assign workflow roles to users. To assign workflow roles, open the BIM 360 Project Admin module, select the Services tab, and select the Project Management section.

    Note that you cannot currently use the RFIs API to select an RFI workflow type for a project. To assign an RFI workflow to a project, see the RFIs help documentation.

    For details about statuses and workflow roles, see the RFIs help documentation.

    We strongly recommend calling GET rfis/:id before updating RFIs in order to verify the most up-to-date permissions and actions.

    To reassign the RFI to another user in its current status, call GET rfis/:id, and check the list of users in the permittedActions section to see the list of potential assignees.

    For more details about adding attachments, see the Transitions tutorial.

    Note that this endpoint is compatible with both BIM 360 and Autodesk Construction Cloud (ACC) projects.

    Resource Information

    Method and URI
    PATCH
    https://developer.api.autodesk.com/bim360/rfis/v2/containers/:containerId/rfis/:rfiId
    Authentication Context
    user context required
    Required OAuth Scopes
    data:write
    Data Format
    JSON

    Request

    Headers

    Authorization*
    string
    Must be Bearer <token>, where <token> is obtained via a three-legged OAuth flow.
    Content-Type*
    string
    Must be application/json
    * Required

    Request

    URI Parameters

    containerId
    string
    The ID of the container. Each project is assigned a container that stores all the RFIs for the project. To find the ID, see the Retrieve a Container ID tutorial.
    rfiId
    string
    The ID of the RFI.

    Request

    Body Structure

    Expand all
    status
    enum:string
    The status of the RFI. Note that the possible statuses of the RFI depends on the workflow type assigned to the RFI.

    For a default workflow with a single reviewer (US), you can potentially use the following statuses: draft, submitted, open, answered, rejected, closed, void. For a workflow with an additional reviewer (EMEA), you can potentially use the following statuses: draft, submitted, openRev1,, openRev2, rejectedRev1`, rejectedManager, answeredRev1, answeredManager, closed, void.

    For more information about different workflows and statuses, see the RFI help documentation.

    To check the workflow type of an RFI, call GET users/me and check workflow.type.

    To check which statuses the user can potentially open the RFI with, call GET rfis/:id. Possible values: draft, submitted, open, openRev1, openRev2, rejected, rejectedRev1, rejectedManager, answered, answeredRev1, answeredManager, closed, void

    title
    string
    The title of the RFI.
    question
    string,null
    The RFI question.
    officialResponse
    string
    The official response to the RFI.
    suggestedAnswer
    string
    The suggested answer for the RFI.
    assignedTo
    string
    The Autodesk ID of the user.

    Max length: 255

    linkedDocument
    string,null
    The ID (item ID) of the document associated with the RFI.

    Max length: 400

    linkedDocumentVersion
    integer,null
    The version number of the document associated with the RFI. Only relevant for pushpin RFIs.
    linkedDocumentCloseVersion
    int
    The version of the document when the RFI is closed.
    location
    object
    The location object.
    description*
    string
    A description of the location of the RFI in the construction project.
    dueDate
    string,null
    The timestamp of the due date for the RFI, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    costImpact
    string,null
    The cost impact status of the RFI. Possible values: null, Yes, No, Unknown.
    scheduleImpact
    string,null
    The schedule impact status of the RFI. Possible values: null, Yes, No, Unknown.
    priority
    string,null
    The priority status of the RFI. Possible values: null, High, Normal, Low.
    discipline
    array: string
    The disciplines of the RFI.
    category
    array: string
    The categories of the RFI.
    reference
    string
    An external ID; typically used when the RFI was created in another system.

    Max length: 20

    sheetMetadata
    object,null
    Data about the document associated with the RFI. Only relevant for pushpin RFIs. For more information see the RFI pushpin tutorials.
    coReviewers
    array: string
    Add members who can contribute to the RFI response. For more information about who can add co-reviewers and the type of permission level they are assigned, see the RFIs help documentation.

    Note that although you can only add co-reviewers in the UI when the RFI is in open status, you can use the endpoint to also set up co-reviewers in other statuses.

    distributionList
    array: string
    Add members to receive email notifications when the RFI is updated. These members will also be able to contribute to the RFI response. For more information about who can add members to the distribution list and the type of permission level they are assigned, see the RFIs help documentation.
    pushpinAttributes
    object,null
    Data about the pushpin RFI. Only relevant for pushpin RFIs. For more details, see the RFI pushpin tutorials.
    * Required

    Response

    HTTP Status Code Summary

    200
    OK
    Success
    400
    Bad Request
    The parameters are invalid
    401
    Unauthorized
    The provided bearer token is not valid
    403
    Forbidden
    The user or service represented by the bearer token does not have permission to perform this operation
    404
    Not Found
    RFI not found
    500
    Internal Server Error
    An unknown error occurred on the server

    Response

    Body Structure (200)

    Expand all
    id
    string
    The ID of the RFI.
    customIdentifier
    string
    The identifier of the RFI given by user.
    title
    string
    The name of the RFI.
    question
    string,null
    The RFI question.
    virtualFolderUrn
    string,null
    Not relevant
    status
    enum:string
    The status of the RFI. Note that the possible statuses of the RFI depends on the workflow type assigned to the RFI.

    For a default workflow with a single reviewer (US), you can potentially use the following statuses: draft, submitted, open, answered, rejected, closed, void. For a workflow with an additional reviewer (EMEA), you can potentially use the following statuses: draft, submitted, openRev1,, openRev2, rejectedRev1`, rejectedManager, answeredRev1, answeredManager, closed, void.

    For more information about different workflows and statuses, see the RFI help documentation.

    To check the workflow type of an RFI, call GET users/me and check workflow.type.

    To check which statuses the user can potentially open the RFI with, call GET rfis/:id. Possible values: draft, submitted, open, openRev1, openRev2, rejected, rejectedRev1, rejectedManager, answered, answeredRev1, answeredManager, closed, void

    assignedTo
    string
    The Autodesk ID of the user.

    Max length: 255

    managerId
    string
    The Autodesk ID of the user.

    Max length: 255

    constructionManagerId
    string
    The Autodesk ID of the user.

    Max length: 255

    architectId
    string
    The Autodesk ID of the user.

    Max length: 255

    reviewerId
    string
    The Autodesk ID of the user.

    Max length: 255

    assignedToType
    enum:string
    The type of assignee. Will always be user.
    dueDate
    string,null
    The timestamp of the due date for the RFI, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    location
    object
    The location object.
    description
    string
    A description of the location of the RFI in the construction project.
    linkedDocument
    string
    The document ID associated with the RFI. Identifies whether this RFI is a pushpin RFI or a project-related RFI. A pushpin is a visual marker that denotes the location of an RFI in a document. A project-related RFI is assigned a null value, and a pushpin RFI is assigned the item ID of the document associated with the pushpin.
    linkedDocumentVersion
    int
    The document’s version ID associated with the RFI. Only relevant for pushpin RFIs.
    linkedDocumentCloseVersion
    int
    The version of the document when the RFI is closed.
    attachmentsCount
    int
    The number of attachments associated with the RFI.
    commentsCount
    int
    The number of comments associated with the RFI.
    officialResponse
    string
    An official response for the RFI.
    respondedAt
    datetime: ISO 8601
    The date and time when the RFI was responded to, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    respondedBy
    string
    The Autodesk ID of the user who responded to the RFI. To check the name of the user, call GET projects/users.
    createdBy
    string
    The Autodesk ID of the user who created the RFI. To check the name of the user, call GET projects/users.
    createdAt
    datetime: ISO 8601
    The date and time the RFI was created, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    updatedBy
    string
    The Autodesk ID of the user who updated the RFI. To check the name of the user, call GET projects/users.
    updatedAt
    datetime: ISO 8601
    The date and time the RFI was updated, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    closedAt
    datetime: ISO 8601
    The date and time the RFI was closed, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    closedBy
    string
    The Autodesk ID of the user who closed the RFI. To check the name of the user, call GET projects/users.
    containerId
    string
    The ID of the container.
    projectId
    string
    The ID of the project.
    suggestedAnswer
    string
    The suggested answer for the RFI.
    coReviewers
    array: string
    A list of alternative reviewers.
    distributionList
    array: string
    The list of users who will be notified of changes to the RFI.
    answeredAt
    datetime: ISO 8601
    The date and time the RFI was answered, in the following format: YYYY-MM-DDThh:mm:ss.sz.
    answeredBy
    string
    The Autodesk ID of the user who answered the RFI. To check the name of the user, call GET projects/users.
    costImpact
    string,null
    The cost impact status of the RFI. Possible values: null, Yes, No, Unknown.
    scheduleImpact
    string,null
    The schedule impact status of the RFI. Possible values: null, Yes, No, Unknown.
    priority
    string,null
    The priority status of the RFI. Possible values: null, High, Normal, Low.
    discipline
    array: string
    The disciplines of the RFI.
    category
    array: string
    The categories of the RFI.
    reference
    string
    An external ID; typically used when the RFI was created in another system.

    Max length: 20

    sheetMetadata
    object,null
    Data about the document associated with the RFI. Only relevant for pushpin RFIs.
    pushpinAttributes
    object,null
    Data about the pushpin RFI. Only relevant for pushpin RFIs. For more details, see the RFI pushpin tutorials.
    permittedActions
    object
    The list of actions that are permitted for the user.
    updateRfi
    object
    The list of attributes and statuses available for the user.
    permittedStatuses
    array: object
    The list of statuses the user is permitted to transition the RFI to.
    status
    enum:string
    The status of the RFI. Note that the possible statuses of the RFI depends on the workflow type assigned to the RFI.

    For a default workflow with a single reviewer (US), you can potentially use the following statuses: draft, submitted, open, answered, rejected, closed, void. For a workflow with an additional reviewer (EMEA), you can potentially use the following statuses: draft, submitted, openRev1,, openRev2, rejectedRev1`, rejectedManager, answeredRev1, answeredManager, closed, void.

    For more information about different workflows and statuses, see the RFI help documentation.

    To check the workflow type of an RFI, call GET users/me and check workflow.type.

    To check which statuses the user can potentially open the RFI with, call GET rfis/:id. Possible values: draft, submitted, open, openRev1, openRev2, rejected, rejectedRev1, rejectedManager, answered, answeredRev1, answeredManager, closed, void

    requiredAttributes
    array: object
    The list of attributes that are required when creating an RFI.
    name
    string
    The name of the RFI attribute.
    values
    array: object
    The list of possible values for the attribute.
    value
    string
    The value of the RFI attribute.
    type
    string
    The type of RFI attribute.
    permittedAttributes
    array: object
    The list of attributes that are required when creating an RFI.
    name
    string
    The name of the RFI attribute.
    values
    array: object
    The list of possible values for the attribute.
    value
    string
    The value of the RFI attribute.
    type
    string
    The type of RFI attribute.
    createComment
    boolean
    true if the user can create a comment for the RFI. false if the user cannot create a comment for the RFI.
    createAttachment
    boolean
    true if the user can create an attachment for the RFI. false if the user cannot create an attachment for the RFI.
    linkPCO
    boolean
    true if the user can link a PCO to the RFI. false if the user cannot link a PCO to the RFI.
    createDocumentReference
    boolean
    true if the user can add a document reference to the RFI. false if the user cannot add a document reference to the RFI.
    removeDocumentReference
    boolean
    true if the user can remove a document reference from the RFI. false if the user cannot remove a document reference from the RFI.
    togglePushpinVisibility
    boolean
    true if the user can hide the pushpin RFI. false if the user cannot hide the pushpin RFI.

    Example

    Success

    Request

    curl -v 'https://developer.api.autodesk.com/bim360/rfis/v2/containers/:containerId/rfis/:rfiId' \
      -X 'PATCH' \
      -H 'Authorization: Bearer AuIPTf4KYLTYGVnOHQ0cuolwCW2a' \
      -H 'Content-Type: application/json' \
      -d '{
            "status": "open",
            "title": "wall color",
            "question": "what should be the color of the outer wall?",
            "officialResponse": "blue",
            "suggestedAnswer": "blue",
            "assignedTo": "PER8KQPK2JRT",
            "linkedDocument": "urn:adsk.wipprod:dm.lineage:1t7QY9-JSxCB0TLh1qMvFQ",
            "linkedDocumentVersion": 3,
            "linkedDocumentCloseVersion": 5,
            "location": {
              "description": "In the middle of the room"
            },
            "dueDate": "2018-01-12T13:06:39.216Z",
            "costImpact": "Yes",
            "scheduleImpact": "Yes",
            "priority": "High",
            "discipline": [
              "Architectural"
            ],
            "category": [
              "Constructability"
            ],
            "reference": "ID-1234",
            "sheetMetadata": "",
            "coReviewers": [
              "PER8KQPK2JRT"
            ],
            "distributionList": [
              "PER8KQPK2JRT"
            ],
            "pushpinAttributes": ""
          }'
    
    Show More

    Response

    {
      "id": "31a3f98d-34a8-4d4c-a362-3cc9de44f89c",
      "customIdentifier": "ID-1234",
      "title": "RFI - pipe is not in right place",
      "question": "Where should we put the pipe?",
      "virtualFolderUrn": "",
      "status": "open",
      "assignedTo": "PER8KQPK2JRT",
      "managerId": "PER8KQPK2JRT",
      "constructionManagerId": "PER8KQPK2JRT",
      "architectId": "PER8KQPK2JRT",
      "reviewerId": "PER8KQPK2JRT",
      "assignedToType": "user",
      "dueDate": "2018-01-12T13:06:39.216Z",
      "location": {
        "description": "In the middle of the room"
      },
      "linkedDocument": "2018-01-12T13:06:39.216Z",
      "linkedDocumentVersion": "urn:adsk.wipprod:fs.file:7_5NcbL1Q1GSjRLJe9ffvw",
      "linkedDocumentCloseVersion": 1,
      "attachmentsCount": 12,
      "commentsCount": 15,
      "officialResponse": "The measurements are correct.",
      "respondedAt": "2018-01-12T13:06:39.216Z",
      "respondedBy": "PER8KQPK2JRT",
      "createdBy": "PER8KQPK2JRT",
      "createdAt": "2018-07-22T15:05:58.033Z",
      "updatedBy": "PER8KQPK2JRT",
      "updatedAt": "2018-07-22T15:05:58.033Z",
      "closedAt": "2018-07-22T15:05:58.033Z",
      "closedBy": "PER8KQPK2JRT",
      "containerId": "31a3f98d-34a8-4d4c-a362-3cc9de44f89c",
      "projectId": "31a3f98d-34a8-4d4c-a362-3cc9de44f89c",
      "suggestedAnswer": "The measurements are correct.",
      "coReviewers": [
        "PER8KQPK2JRT"
      ],
      "distributionList": [
        "PER8KQPK2JRT"
      ],
      "answeredAt": "2018-07-22T15:05:58.033Z",
      "answeredBy": "PER8KQPK2JRT",
      "costImpact": "Yes",
      "scheduleImpact": "Yes",
      "priority": "High",
      "discipline": [
        "Architectural"
      ],
      "category": [
        "Constructability"
      ],
      "reference": "ID-1234",
      "sheetMetadata": "",
      "pushpinAttributes": "",
      "permittedActions": {
        "updateRfi": {
          "permittedStatuses": [
            {
              "status": "open",
              "requiredAttributes": [
                {
                  "name": "assignedTo",
                  "values": [
                    {
                      "value": "PER8KQPK2JRT",
                      "type": "user"
                    }
                  ]
                }
              ]
            }
          ],
          "permittedAttributes": [
            {
              "name": "assignedTo",
              "values": [
                {
                  "value": "PER8KQPK2JRT",
                  "type": "user"
                }
              ]
            }
          ]
        },
        "createComment": "",
        "createAttachment": "",
        "linkPCO": "",
        "createDocumentReference": "",
        "removeDocumentReference": "",
        "togglePushpinVisibility": ""
      }
    }
    
    Show More