Speckle’s connection to Power BI consists of two parts.
  • The Power BI connector lets you easily load your model from Speckle into Power BI in a tabular format.
  • The 3D Viewer Visual allows you to view and color your models in 3d.
Speckle currently supports versions: . The connector works on only.

Setup

1

Install the connector

Install your connector
2

Open the Power BI connector

  1. Select Get Data. 2. In the search box, enter Speckle. 3. Select Connect to Speckle and click Connect.

Loading a Model

1

Load from Speckle

  1. Copy Model URL from the web app.
  2. Paste it in the text field and select OK.
2

Import 3D Visual

  1. In the Visualizations pane, select the three dots (…), then select Import a visual from a file.
  2. Browse to Documents/Power BI Desktop/Custom Visuals.
  3. Select Speckle 3D Visual.pbiviz and Open.
3

Visualize a model

  1. In the Visualizations pane, select Speckle 3D Visual
  2. Configure the visual:
    • Drag Version Object ID column into the Version Object ID input -> required for viewing
    • Drag Object IDs column into the Object IDs input -> required for interactivity
    • Drag any column into Tooltip input -> for tooltip
    • Drag any column into Color by input -> for coloring model
  3. Wait for your model to load in the viewer

Helper Functions

We’ve added a series of helper functions to the Speckle namespace to make working with Speckle data in Power BI more efficient and user-friendly.
Speckle.Objects.Properties
Working with properties can be tricky—they’re often deeply nested and inconsistently structured. This helper function simplifies the process.
Speckle.Objects.Properties(inputRecord as record, optional filterKeys as list)
Description:
Returns a record containing properties and their values from the given inputRecord. Optionally, you can provide filterKeys to extract only specific properties.

Speckle.Objects.CompositeStructure Use this function to extract the composite structure of an object, such as a Wall, Floor, or Roof. This is especially useful for understanding layered compositions in your models.
Note: Currently only supported for Revit and Archicad models.
Speckle.Objects.CompositeStructure(inputRecord as record, optional outputAsList as nullable logical)
Description:
Takes an object record as input and returns its composite structure.
  • By default, returns a record.
  • Set outputAsList to true to return the composite structure as a list—useful for expanding each layer into its own row.

Speckle.Objects.MaterialQuantities Quickly access material quantities of an object—ideal for use in Power BI’s “Add Column” transformation flow, as it operates on individual records.
Speckle.Objects.MaterialQuantities(inputRecord as record, optional outputAsList as logical)
Description:
Takes an object record and returns a record containing its material quantities.
  • Set outputAsList to true to return quantities as a list, which is helpful for row expansion.

Speckle.Models.Federate Previously, you could federate models by supplying a federated model URL. Now, you can manually federate already-loaded models in Power BI using this function.
Tip: This function allows you to federate models from different Speckle projects.
Speckle.Models.Federate(tables as list, optional excludeData as logical)
Description:
Accepts a list of tables (each representing a model) and returns a federated table.
  • Use excludeData = true to federate only the metadata necessary for 3D visuals (e.g., Version Object ID, Object IDs) without pulling in all the data.

Speckle.Utils.ExpandRecord This function expands a record column into separate columns for each field. It’s especially useful in combination with the Properties helper.
Speckle.Utils.ExpandRecord(table as table, columnName as text, optional FieldNames as list, optional UseCombinedNames as logical)
Description:
Expands the fields of a record column (columnName) into individual columns in the table.
  • Use FieldNames to limit the expanded fields.
  • Use UseCombinedNames = true to prefix column names with the record column name (e.g., Properties.Length).