User Guide Getting Started Help Center Documentation Community Training
Navigating Projects with the Object Browser

The object browser in the Looker IDE allows you to view all the objects in your project in one place, along with the hierarchical relationships between them. This can be a useful alternative to navigating your project by file or folder, as it may be easier to find specific LookML objects and understand the relationships between them.

To use the object browser, your Looker admin must have enabled the Object Browser Labs feature. IDE folders must also be enabled for your project.

Viewing the Objects in a Project

The object browser shows the models, Explores, views, and fields that have been defined in your project, along with the hierarchy of objects and the type of each object. If your project also includes imported files, you can read more details about viewing those objects below.

To use the object browser in a project with IDE folders enabled, select the object browser icon, which is below the folder icon in the left panel of the Looker IDE:

The object browser groups objects by type, and objects are sorted alphabetically within each type. Using the object browser, you can show or hide the hierarchies of objects by expanding or collapsing objects.

Collapsing and Expanding Objects

You can collapse and expand models, Explores, and views to reveal or hide the objects they contain. Any model in a project is expanded by default in the object browser, revealing a list of the Explores defined in the model:

You can collapse or expand an object by selecting the arrow to the left of its name in the object browser:

Viewing the Type of an Object

The object browser lists the following object types:

You can view the type of an object in your project by hovering over that object’s name in the object browser. In the example below, hovering over the inventory_items object reveals that inventory_items has the type explore:

The icon to the left of each object’s name also identifies the object type:

Hovering over the name of a field in the object browser reveals the value of the field’s type subparameter. In the example below, the icon to the left of the id object indicates that it is a dimension, and hovering over the id dimension reveals that it is a type: number dimension:

Navigating to the LookML for an Object

To navigate to the LookML for an object, select the name of the object in the object browser. When you select an object, the IDE takes you to the file in which the object is defined and positions your cursor on the first line of the object’s declaration.

In this example, selecting the inventory_items Explore opens the a_thelook.model file in the IDE and positions the cursor at the top of the explore declaration for inventory_items:

Note that the object browser shows the products and distribution_centers views that have been joined into the inventory_items Explore.

Special Situations

Viewing Imported Objects in the Object Browser

When you import files from another project and include those imported files in your active project, you can use the object browser to view imported objects as well.

For example, suppose you have used the local_dependency parameter in your project’s manifest file to import a local project called thelook, which contains a view called repeat_purchase_facts:

# Your project project_name: "my_project" # The project to import local_dependency: { project: "thelook" }

To make the repeat_purchase_facts view available to your model, you can include that view and create a repeat_purchase_facts Explore:

include: //thelook/Views/repeat_purchase_facts.view.lkml explore: repeat_purchase_facts {}

You can then view the repeat_purchase_facts Explore in the object browser and expand the Explore to show any views it contains:

Navigating to the LookML for an imported object opens the file in which it was defined, which will be read-only because it is an imported project file.

Viewing Extended Objects in the Object Browser

If your project includes a view or an Explore that extends another view or Explore, you can use the object browser to view and navigate to the LookML for the extending object. When you expand a view that extends another, the object browser shows the fields from the base view along with any fields that you have added in the extending view.

For example, suppose you have a defined a view — products_extended — that extends another view called products and adds new fields:

include: "products.view" view: products_extended { extends: [products]   measure: brand_count { type: count_distinct sql: ${brand} ;; }   measure: category_count { alias: [category.count] type: count_distinct sql: ${category} ;; }   measure: department_count { alias: [department.count] type: count_distinct sql: ${department} ;; } }

You can see that the object browser shows both the fields defined in the base products view and the new fields defined in the products_extended view:

You can also navigate to the LookML for the extending object by selecting its name in the object browser.

Viewing Refined Objects in the Object Browser

You can use the object browser to view the contents of a refined view or Explore, or to navigate to the LookML for the refinements in your project.

The object browser lists refinements and the Explores or views they build upon as single objects, rather than displaying refinements and their base objects separately. If you use refinements to add fields to a view or to join views to an Explore, the fields or views you add will be displayed together with the contents of the original view.

When you select the name of a refined view or Explore in the object browser, the IDE opens to the line in your LookML on which the refinement is defined. If a view or an Explore has been refined multiple times, the IDE navigates to the last refinement of that object by include order.

As an example, suppose you want to add a new dimension, carrier, to a view called faa_flights without modifying the original LookML for the view. To refine the faa_flights view, use the view parameter and add a plus sign (+) in front of the name of the view:

view: +faa_flights { dimension: carrier { type: string sql: ${TABLE}.carrier ;; } }

When you expand the faa_flights view in the object browser, the carrier field is displayed:

When adding refinements to your project, be mindful of the order in which refinements are applied. Refinements are applied line by line going downwards within a single file, and by the order in which their files are included if an object is refined multiple times in multiple files. See the LookML Refinements documentation page for information about the order in which refinements are applied.