Share

Tandem to Robin - Initialize Robin

The integration allows users to setup Robin instance by reading Tandem Assets. This solution begins by reading Tandem to retrieve building, level, and room information. If locations and spaces do not already exist, it creates them in Robin and updates the IDs back to Tandem.

Pre-Requisites

Tandem

A Tandem facility has to already be setup before starting this workflow. For more information on setting up Tandem Facility please see the Tandem Help Docs here. The User-defined parameters section lists all properties that should exist in the Tandem facility's facility template or should be created and added there.

Robin

An API access token is generated for the plugin to use. For more information on creating access keys in Robin, please refer to the getting started guide here.

User-Defined Properties

The Tandem facility for this workflow will need to have a template with the following user-defined parameters setup in Tandem. These should all be created under the category Robin.

Property Name Description Data Type
SpaceId The Robin space id associated with this element in Tandem. Number
LocationId The Robin location id associated with this element in Tandem. Number
Availability The availability of the space. Either available, booked or in_use or disabled String
Presence The amount of users or devices present within the space. Number
Next An ISO-8601 timestamp that represents the next time the room will switch from available to booked or in_use or vice versa. DateTime

Solution Features

Feature Description
Read all Spaces from Tandem Facility The solution reads all spaces and levels from the given Tandem Facility.
Create Locations in Robin The Tandem facility details are used to create them as locations in Robin. So, a facility representing a building in Tandem will be the location for which the Robin instance is being setup.
Create Rooms and Levels in Robin The rooms and levels from Tandem are created as Spaces in Robin. These spaces are linked back to the Tandem rooms and levels for further data synchronization.

Basic Setup

This section explains the minimum configuration needed to deploy the solution and get it up and running. The solution is one way reading Tandem for space management data and setting up Robin with the same details. Below are the list of plugins that need to be configured.

Autodesk Tandem Service & Autodesk Tandem Connector

Parameter Description Expected Value
Facility ID The facility which will be used to read space management data that needs to be created in Robin. The facility will be used to create location in Robin. Facility URN from Tandem
Client ID The APS account client id.
Client Secret The APS account client secret.

Autodesk Tandem Service

To retrieve only the rooms from the Tandem facility, change the Data Processing parameter to the Retrieve Space Assets value.

Robin Service:

  • An Robin API key for the account.
  • The Organization ID for which the Robin instance is setup.

Advanced Setup

This section details about all the components involved in the solution including the configuration needed and their purpose on the pipeline.

Solution Overview

TandemToRobinSetupPipeline

Components Involved

This section provides a detailed description of the components (plugins) that are part of the solution.

Scheduled Data Stream:

The scheduled data stream is the start of the pipeline where we can set how frequently the solution should run and update the properties. The scheduled data stream holds the properties that can be changed to customize the user defined properties that are defined in Tandem. Please refer to the Appendix for the JSON data that can be copied.

Autodesk Tandem Service

This plugin connects to the given Tandem facility and model to retrieve room / space information. The plugin is configured to retrieve only rooms with "Robin.SpaceId" property set as empty. This is achieved by passing the Attribute Filter from the scheduled data stream. The value suggests the plugin to only retrieve assets from Tandem that has the listed properties. The Robin.SpaceId at the end of the string can be changed to the actual user defined property defined in Tandem.

Converter (PrepRobin)

This converter maps Tandem asset data to the Robin Bulk Create payload format as below. For more information on the Bulk Create action please refer to the HELP section of the Robin Service plugin. It also prepares a map of Tandem Asset IDs used by the PrepTandem Converter to match spaces with Tandem assets for updates.

Robin Service (Bulk Create)

This service is configured to run in "Bulk Create" mode, creating necessary entities in Robin along with their dependencies if provided in the incoming data. It checks if the facility and rooms already exist in Robin, creating them if necessary. It sends JSON data along with created entity IDs to the next filter. If no entities are created, it indicates that objects already exist in Robin and no update is needed for Tandem.

Converter (Prep Tandem)

This converter receives data from the Robin Service Bulk Create action, which includes the newly created locations and space IDs. It maps space IDs with Tandem asset IDs so that the Tandem Connector can update assets. This is where we specify the custom Tandem asset properties to be updated.

Autodesk Tandem Connector

This plugin connects to the same Tandem facility as the earlier service plugin. It receives asset IDs from tcMetadata and updates properties (e.g., Robin Space ID) in the payload as below.

{
  "data": {
    "Robin": {
      "SpaceId": xxxxx,
      "LocationId": xxxx
    }
  },
  "tcMetadata": {
    "tandem": {
      "asset": xxxxxxxxxxxx
    }
  }
}

Troubleshooting

This section provides pointers for debugging if something does not function as expected:

  • Check the configuration of the "ReadTandem" plugin, including facility and model settings, to ensure the Tandem service reads rooms correctly. Also, verify that the Asset Filter configuration matches the HELP section of the plugin.
  • Debug converters by adding logger.debug('debug statement') in code, observing the Logs section after redeployment.
  • If Tandem services do not read/update properties as expected, verify that the property names in Tandem match those in the scheduled data stream.

Appendix

Scheduled Data Stream

{
  "mapping": {
    "RobinCategory": "Robin",
    "SpaceId": "SpaceId",
    "LocationId": "LocationId",
    "Availability": "Availability",
    "Status": "Status",
    "Next": "Next"
  },
  "tcMetadata": {
    "tandem": {
      "attributesFilter": ["Common.Name", "Common.Level", "Common.Assembly Code", "Common.System Class", "Common.Classification", "Robin.SpaceId"]
    }
  }
}

Was this information helpful?