Trimble BCF Topics API

Building Collaboration Format issue tracking

OpenAPI Specification

trimble-bcf-topics-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Trimble Connect BCF Topics API
  description: The Trimble Connect API enables integration with Trimble's cloud-based construction collaboration platform. Provides access to project data, BIM models, document management, issues (BCF Topics), and team collaboration features for construction project management. Trimble Connect acts as the BIM collaboration hub integrating Tekla, SketchUp, and third-party tools.
  version: '2.0'
  contact:
    name: Trimble Developer Support
    url: https://developer.trimble.com
  license:
    name: Trimble Developer Terms
    url: https://www.trimble.com/legal/developer-terms
servers:
- url: https://app.connect.trimble.com/tc/api/2.0
  description: Trimble Connect Production API
security:
- BearerAuth: []
tags:
- name: BCF Topics
  description: Building Collaboration Format issue tracking
paths:
  /projects/{projectId}/topics:
    get:
      operationId: listBCFTopics
      summary: List BCF topics (issues)
      description: Returns BIM Collaboration Format (BCF) topics for a project. BCF topics represent issues, clashes, comments, and design queries tied to specific locations or objects in BIM models.
      tags:
      - BCF Topics
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: topicType
        in: query
        schema:
          type: string
          enum:
          - ISSUE
          - REQUEST_FOR_INFORMATION
          - CLASH
          - COMMENT
          - TASK
      - name: topicStatus
        in: query
        schema:
          type: string
          enum:
          - OPEN
          - IN_PROGRESS
          - RESOLVED
          - CLOSED
      - name: assignedTo
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      responses:
        '200':
          description: List of BCF topics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TopicListResponse'
    post:
      operationId: createBCFTopic
      summary: Create a BCF topic
      description: Creates a new BCF topic (issue) in the project.
      tags:
      - BCF Topics
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopicCreate'
      responses:
        '201':
          description: Topic created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Topic'
  /projects/{projectId}/topics/{topicGuid}:
    get:
      operationId: getBCFTopic
      summary: Get a BCF topic
      description: Returns details for a specific BCF topic.
      tags:
      - BCF Topics
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: topicGuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: BCF topic details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Topic'
    put:
      operationId: updateBCFTopic
      summary: Update a BCF topic
      description: Updates a BCF topic status, assignee, or other fields.
      tags:
      - BCF Topics
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: topicGuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopicUpdate'
      responses:
        '200':
          description: Topic updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Topic'
components:
  schemas:
    TopicListResponse:
      type: object
      properties:
        topics:
          type: array
          items:
            $ref: '#/components/schemas/Topic'
        totalCount:
          type: integer
    TopicUpdate:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        topicStatus:
          type: string
          enum:
          - OPEN
          - IN_PROGRESS
          - RESOLVED
          - CLOSED
        priority:
          type: string
          enum:
          - CRITICAL
          - HIGH
          - NORMAL
          - LOW
        assignedTo:
          type: string
        dueDate:
          type: string
          format: date
    Topic:
      type: object
      description: BCF topic (issue) in BIM Collaboration Format
      properties:
        guid:
          type: string
          format: uuid
        topicType:
          type: string
          enum:
          - ISSUE
          - REQUEST_FOR_INFORMATION
          - CLASH
          - COMMENT
          - TASK
        topicStatus:
          type: string
          enum:
          - OPEN
          - IN_PROGRESS
          - RESOLVED
          - CLOSED
        title:
          type: string
        description:
          type: string
        priority:
          type: string
          enum:
          - CRITICAL
          - HIGH
          - NORMAL
          - LOW
        assignedTo:
          type: string
          description: User email or ID
        dueDate:
          type: string
          format: date
        label:
          type: string
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
        creationAuthor:
          type: string
        modifiedAuthor:
          type: string
        viewpoints:
          type: array
          items:
            type: object
            properties:
              guid:
                type: string
                format: uuid
              snapshotUrl:
                type: string
                format: uri
        referenceLinks:
          type: array
          items:
            type: string
    TopicCreate:
      type: object
      required:
      - title
      - topicType
      - topicStatus
      properties:
        title:
          type: string
        description:
          type: string
        topicType:
          type: string
          enum:
          - ISSUE
          - REQUEST_FOR_INFORMATION
          - CLASH
          - COMMENT
          - TASK
        topicStatus:
          type: string
          enum:
          - OPEN
          - IN_PROGRESS
          default: OPEN
        priority:
          type: string
          enum:
          - CRITICAL
          - HIGH
          - NORMAL
          - LOW
          default: NORMAL
        assignedTo:
          type: string
        dueDate:
          type: string
          format: date
        label:
          type: string
  parameters:
    ProjectId:
      name: projectId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Trimble Connect project UUID
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Trimble Identity OAuth2 Bearer token