> ## Documentation Index
> Fetch the complete documentation index at: https://speckle-assistant.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Power BI Connector

export const connector_0 = "PowerBI"

<div class="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border-2 border-red-600 bg-red-100/50 dark:border-red-600 dark:bg-red-400/20" data-callout-type="warning">
  <div class="mt-0.5 w-4" data-component-part="callout-icon">
    <svg class="flex-none w-5 h-5 text-red-700 dark:text-red-300" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-label="Warning">
      <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
    </svg>
  </div>

  <div class="text-sm prose min-w-0 w-full text-red-700 dark:text-red-300" data-component-part="callout-content">
    <b>Notice</b>: This user guide is based on the legacy {connector_0} connector.<br />
    We recommend using our new connectors instead, as they are easier to use and actively maintained. This legacy documentation may not be up to date.
  </div>
</div>

If you've made it this far, chances are you've installed the Power BI connector and run through the configuration and authentication steps. If not, now is a good time to take a look.

Once the connector is installed, you'll find two new options in the "**Get Data**" interface under the "**Other**" category:

<Frame>
  <img src="https://mintcdn.com/speckle-assistant/WU-XhQlBBfFr6sbO/images/legacy/powerbi/4-receive-methods.png?fit=max&auto=format&n=WU-XhQlBBfFr6sbO&q=85&s=d43a4f326aaffa91768c3435b2672dfa" alt="Receive Methods" width="1733" height="562" data-path="images/legacy/powerbi/4-receive-methods.png" />
</Frame>

1. **`Speckle - Get Model by URL (beta)`** (Recommended option for beginners)
2. **`Speckle - Get Model by URL [Structured] (beta)`** (experimental).

### Speckle - Get Model by URL (beta)

This is recommended if you are just starting with the Speckle Power BI connector.

Using it is simple: paste **Model/Version URL** and click **OK**.

<Frame>
  <img src="https://mintcdn.com/speckle-assistant/WU-XhQlBBfFr6sbO/images/legacy/powerbi/5-default-method.gif?s=03ab5c358a254558650537a8dd3e7fae" alt="Default method demonstration" width="1920" height="1200" data-path="images/legacy/powerbi/5-default-method.gif" />
</Frame>

The result of that query will be a table with the following columns:

<Frame>
  <img src="https://mintcdn.com/speckle-assistant/WU-XhQlBBfFr6sbO/images/legacy/powerbi/6-received-data-columns.png?fit=max&auto=format&n=WU-XhQlBBfFr6sbO&q=85&s=662ad559c8de591d518a5e5a0bd67590" alt="Received Data Columns" width="1675" height="236" data-path="images/legacy/powerbi/6-received-data-columns.png" />
</Frame>

1. **Model URL**: This is the URL of your model.
2. **URL Type**: Type or category of the input URL. Its value can be model, version, or object.
3. **Version Object ID🆕:** The ID of the root object each individual object came from. For model/versions, it will be the referenced version object. For object URLs, it will match the object id on the URL.
4. **Object ID**: The ID of each speckle object in the table. This was extracted from the `data` records.
5. **speckle\_type:** Speckle Type of each object.
6. **data**: A column of records containing the data belonging to each speckle object.

Other columns may be present and can be user-generated but are irrelevant to this section.

<Tip>
  Model URL, Version Object ID and Object ID were added to facilitate loading data into the new Speckle Power BI 3D Viewer
</Tip>

#### Data column

If you look at the values of the data column, you'd see it is full of Records. In Power BI, the Record data type represents a single row of data with one or more fields. It is similar to a JSON object in structure, where each field has a name and a corresponding value. This allows for representing complex data types within a single row.

<Frame>
  <img src="https://mintcdn.com/speckle-assistant/WU-XhQlBBfFr6sbO/images/legacy/powerbi/7-data-records.png?fit=max&auto=format&n=WU-XhQlBBfFr6sbO&q=85&s=764274c1f97c6e169fc209f5be08825d" alt="Data Records" width="1082" height="780" data-path="images/legacy/powerbi/7-data-records.png" />
</Frame>

In the case of Speckle, where objects are essentially JSON objects with key-value pairs, these objects are converted into Record objects in Power BI when received. This conversion enables the representation of the complex data structures from Speckle as Records within Power BI.

### Speckle - Get Model by URL \[Structured] (beta)

<Warning>
  This feature is experimental.
</Warning>

This new function allows for much faster interactions with your Speckle data, as it no longer requires you to pull every single object as a flat list. There's a small downside to this, as you will no longer get the data with the expected columns to connect it directly to the *Speckle Power BI Visual*.
