Visualizing an interactive 3D model of a warehouse, in Power BI.
In this tutorial you will learn how to create a custom 3D model of your warehouse that can be linked to any kind of data you have in Power BI. The tools needed to achieve this are:
- Trimble® SketchUp® Pro as the 3D modelling application.
- 3DBI for SketchUp as the custom extension that is able to convert a SketchUp model to a format readable by our 3DBI visual.
- Microsoft® Power BI®
- 3DBI, the custom visual we developed for Power BI, shipped with the SketchUp extension.
Not looking to draw the actual model yourself?
In order to get a 3D model into Power BI the model needs to be drawn in 3D first. While we provide the tools needed to get any SketchUp model in Power BI we can also help with the creation of the actual 3D model. Feel free to get in touch so that we can have a chat about the actual 3D model you are looking to implement.
1 – Drawing the 3D model – racking
By using some basic SketchUp modelling we have created 3 components to represent the racks and a default pallet location. The first step we take is to draw all racks in our warehouse by reusing and duplicating the racking components.
2 – Location labeling – the hierarchical system explained
In this example warehouse, each physical pallet location will be labeled using a hierarchical grouping system that takes into account its rack, bay, level and position. For example, label C-01-B4 refers to a pallet located at rack C, bay 01, level B and position 4.
3 – Location modelling – the hierarchical system applied
With the hierarchical labelling system in mind it is time to draw the actual pallet locations:
- Place and duplicate the pallet component to form all locations of a single level.
- Give each of them an instance name that is equal to the label position parameter (1 to 5).
- Select all pallet locations you just created and group them into a new component definition. You can name this component definition “Level”.
You just have created a single component that represents a single level of pallet positions in a bay. Analogous to the previous steps, you can now:
- Duplicate and place this component for each level you have in your bay.
- Give each of them an instance name that is equal to the label level parameter (A to F)
- Select all levels you just created and group them into a new component definition named “Bay”.
Now, it is time to duplicate this bay component and create an entire rack out of them:
- Duplicate and place this bay component for each bay in your rack.
- Give each of them an instance name that is equal to the label bay parameter. In this particular case we will also add the dash (-) prefix and suffix, as such: -01- , -02-, -03-, …
- Select all bays you just created and group them into a new component definition named “Rack”.
One final step now is to fill all racks on your model:
- Duplicate and place your rack component for each rack in your warehouse.
- Give each of them an instance name that is equal to the label rack parameter.
- In case some racks have less or more bays than the rack component you created, you can use SketchUp’s make unique functionality to create a new rack definition and add/remove bays to/from that definition.
4 – Adding context to your 3D model
- To gain even more spatial insight into the layout of your 3D environment you can add static context. Static context is geometry that is not related to any data and will always be visible in your resulting .3dbi model. The goal is to improve orientation of the end user. SketchUp makes it easy to quickly draw some walls with openings, add some 3D text as well as leverage the availability of 3D warehouse where you can find numerious objects that can be inserted into your SketchUp model.
(tip: you notice in the end of the movie how we fully explode the imported forklift up to the bare geometry, before regrouping it in a new component. The reason is that by doing so we are sure there are no nested components with an instance name assigned to them, which could cause issues in the following step)
5 – From SketchUp to Power BI – object identifiers
With our 3D model ready it is time to export it to Power BI by using 3DBI for SketchUp. In the export dialog you need to:
- Specify that instance names will be used to identify unique objects.
- Remember that in the previous step you have assigned instance names to each component on different hierarchical levels to indicate their position, level, bay and rack? All these parts need to be concatenated into a unique combination and applied to each unique pallet in the 3D model. To do so, make sure that the concatenate option is checked. Objects without an instance name (and thus without an ID) will end up as static (always visible) context objects in the 3DBI model.
- You have the option to include a separator between concatenated hierarchical ids. However, in this case this is not needed since we added our own dash (-) prefix and suffix already in the names of each bay. Simply remove the default separator in the dialog to allow for concatenation without a separator.
- We do not need data coming from the SketchUp model, such as volumes, areas, materials, … because all data of our warehouse will come from external datasources. For this reason you can uncheck the “Single Table Json Data Generator” option.
- Press the export button and specify where to save the generated .3dbi file.
Once the .3dbi file is exported it is time to switch over to Power BI. The easiest way to do so is to open the directory containing the shipped exampel dashboards and to open the empty_dashboard_with_viewer_preloaded.pbix file. This is an empty dashboard but with the custom 3DBI visual preloaded.
We will not go into the details of how to add data to your Power BI dashboard. What is important however is that you have a datasource with a column containing the exact same IDs as assigned to the induvidual objects in the exported .3dbi file (f.e. A-03-B4). When that data is available you can drag and drop the 3DBI visual onto the dashboard, assign that field to “Object Identifiers” property and finally insert the .3dbi file.
You also have the option to assign a field to the “Color By” property. This will colorize all objects in your 3D model according to the Data Colors being specified in the Format tab.
Finally, the viewer itself also comes with a few options that will let you control the opacity of ghost objects (objects that fall out of your current query), turn shadows on or off, specify if edges are visible, …