# Window
# Registration
A window is composed of plugins and can be registered using two ways :
- The first and most commonly used method is to add a window configuration object when registering a plugin.
- The second is by registering it directly on the BIMData viewer object.
const bimdataViewer = makeBIMDataViewer(/* {...} */);
const windowConfigurationObject = {
  name: "windowName",
  plugins: [
    /* plugins */
  ],
};
// first way: register via plugin
bimdataViewer.registerPlugin({
  /* plugin specific fields */
  window: windowConfigurationObject,
});
// second way: register directly
bimdataViewer.registerWindow(windowConfigurationObject);
# Loading
A window can be loaded using the localContext.loadWindow(windowName) method. Notice that a string must be passed to this method, meaning that the corresponding window must be registered before.
Once loaded, the window can be accessed directly via localContext.window.
# Window API
Window and window configuration objects have the same API:
| Property | Description | 
|---|---|
| name:string | Required The name of the window. Must be unique. | 
| label:string | The label that is displayed to the user. Can be a key to be translated like : "viewer3d.window_label". | 
| plugins:Array<string> | An array of plugins name which will be added to the window. | 
| header: boolean | Default to true. Defines if the Header must be shown when only this window is displayed. | 
| icon.imgUri:string | A string that is injected into an imgHTML element as a src. This image will be displayed while selecting the window on the window selector. | 
| modelTypes: Array<string> | The model types handled by this window. Model types are "IFC", "DWG", "PDF", "JPEG", "PNG", "METABUILDING" and "POINT_CLOUD". | 
| multiModel: boolean | Default to true. Defines if the window can handle more than one model at a time. | 
| noModel: boolean | Default to false. Defines if the window handle models. | 
| logoAndVersion: boolean | Default to false. Defines if the BIMData logo and version are shown on the bottom left corner when only this window is displayed. | 
| defaultWindow: boolean | Default to false. Defines this window as the viewer default window. The default window is displayed when no window are loaded on a localContext. | 
| displayedInWindowSelector: boolean | Default to true. Defines if this window is shown on the window selector plugin. (the UI list of all available window ) |