Skip to main content
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.
You need to enable third-party data sources. 1. Go to File > Options and settings > Options > Security. 2. Under Data Extensions, select Allow any extension to load without validation or warning.

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
You’ll find Speckle’s 3D visual in the Documents/Power BI Desktop/Custom Visuals folder.
The next-generation Power BI connector doesn’t use Model URL input. You can safely ignore it.
This is a browser-related issue. To fix it:
  1. Go to File > Options and settings > Options > Security
  2. Under Authentication Browser, clear Use my default web browser
You don’t have the required permissions to load the model. Contact the project owner and ask them to give you the necessary permissions.
The Power BI connector needs Speckle Desktop Service to run on your machine. Make sure Desktop Service is active and running.
Yes. Both the Power BI connector and 3D visual support private projects.
Following reasons might cause this issue:
  1. Refresh preview Make sure you clicked Refresh in the Power BI ribbon to load the latest version.
  2. Check if you loaded a specific version If your model URL contains an ”@” symbol, this means you loaded a specific version. Power BI connector will only load that specific version and not any new versions.
Here’s how you can load and visualize multiple models with Power BI connector:
  1. First, federate your models in the web app.
  2. Copy the federated model URL
  3. Load federated model in Power BI.
Visualizing multiple models in Power BI is similar to visualizing a single model.
Use the ghost icon in the 3D visual. By default, unselected elements appear ghosted. Clear the ghost icon to completely hide unselected elements.
If you have a Business plan, you can hide Speckle branding by selecting the arrow in the top bar. Free plan users can’t hide the Speckle logo.
Viewing and loading a model require different permissions. To load a model in a connector, contact the project owner to change your project role.

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).