# RoomlePlanner.default

[planner-core/src/roomle-planner](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner.md).default

Shared API between configurator and planner

## Type parameters

| Name | Type                                                                                                                                                                  |
| ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `P`  | extends readonly [`PluginName`](/rubens/rubens-sdk/rubens-sdk-reference/modules/configurator_core_src_roomle_configurator._internal_.md#pluginname)\[] = readonly \[] |

## Implements

* [`KernelAccessCallbackI`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelaccesscallbacki.md)
* [`RoomlePlannerCallback`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.roomleplannercallback.md)
* [`GlobalAPI`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md)
* [`Context`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.context.md)
* [`KernelUtilityForUi`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelutilityforui.md)
* [`ExternalEmbeddable`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.externalembeddable.md)<[`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/planner_core_src_roomle_planner_ui_callback.default.md)>
* [`RubensAPI`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md)
* [`ExternalObjectAPI`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md)

## Table of contents

### Constructors

* [constructor](#constructor)

### Properties

* [\_creator\_](#_creator_)

### Accessors

* [PlannerCoreTypes](#plannercoretypes)
* [callbacks](#callbacks)
* [hasSingleRoom](#hassingleroom)

### Methods

* [\_selectExternalObjectGroup](#_selectexternalobjectgroup)
* [\_selectExternalObjectModule](#_selectexternalobjectmodule)
* [addAtticToWall](#addattictowall)
* [back](#back)
* [backTo](#backto)
* [backToPlanner](#backtoplanner)
* [calcPartsPriceSum](#calcpartspricesum)
* [cancelSelection](#cancelselection)
* [changeExteriorWallsMaterial](#changeexteriorwallsmaterial)
* [changeFloorsMaterial](#changefloorsmaterial)
* [changeInteriorWallsMaterial](#changeinteriorwallsmaterial)
* [configureExternalObjectApi](#configureexternalobjectapi)
* [createNewSerializedConfiguration](#createnewserializedconfiguration)
* [createPlanFromObject](#createplanfromobject)
* [deleteSelection](#deleteselection)
* [disableAdvancedDocking](#disableadvanceddocking)
* [disableEvents](#disableevents)
* [disableMeasurementLineDrawing](#disablemeasurementlinedrawing)
* [disableMultiselect](#disablemultiselect)
* [disableRotation](#disablerotation)
* [disableShowChildrenOfPlanObject](#disableshowchildrenofplanobject)
* [disableSnapping](#disablesnapping)
* [disableWallDrawing](#disablewalldrawing)
* [downloadHomagIxExportPoC](#downloadhomagixexportpoc)
* [dragInObject](#draginobject)
* [drawWalls](#drawwalls)
* [duplicateItems](#duplicateitems)
* [enableAdvancedDocking](#enableadvanceddocking)
* [enableEvents](#enableevents)
* [enableMeasurementLineDrawing](#enablemeasurementlinedrawing)
* [enableMultiselect](#enablemultiselect)
* [enableRotation](#enablerotation)
* [enableShowChildrenOfPlanObject](#enableshowchildrenofplanobject)
* [enableSnapping](#enablesnapping)
* [enableWallDrawing](#enablewalldrawing)
* [escapeDrawing](#escapedrawing)
* [exportCanvasScreenshot](#exportcanvasscreenshot)
* [exportGLB](#exportglb)
* [exportImageFromCamera](#exportimagefromcamera)
* [formatValueToUnitString](#formatvaluetounitstring)
* [generateTCExport](#generatetcexport)
* [getAttachedAttic](#getattachedattic)
* [getCameraOffset](#getcameraoffset)
* [getConfigurator](#getconfigurator)
* [getConfiguratorApi](#getconfiguratorapi)
* [getConfiguratorContext](#getconfiguratorcontext)
* [getCurrentSkin](#getcurrentskin)
* [getExternalObjectGroups](#getexternalobjectgroups)
* [getObjects](#getobjects)
* [getPartlistOf](#getpartlistof)
* [getPlanInteractionHandler](#getplaninteractionhandler)
* [getPlanModelViewHelper](#getplanmodelviewhelper)
* [getPlanOverview](#getplanoverview)
* [getPlanXmlFrom](#getplanxmlfrom)
* [getRuntimeComponentIdOfRootComponent](#getruntimecomponentidofrootcomponent)
* [getScene](#getscene)
* [getStorage](#getstorage)
* [getUnitFormatter](#getunitformatter)
* [getWallAngleDegrees](#getwallangledegrees)
* [hasWalls](#haswalls)
* [highlightPlanElements](#highlightplanelements)
* [importGLB](#importglb)
* [init](#init)
* [insertItemList](#insertitemlist)
* [insertItems](#insertitems)
* [insertObject](#insertobject)
* [isCurrentlyDrawing](#iscurrentlydrawing)
* [isReady](#isready)
* [loadError](#loaderror)
* [loadExternalObjectGroup](#loadexternalobjectgroup)
* [loadExternalObjectLibrary](#loadexternalobjectlibrary)
* [loadPlan](#loadplan)
* [loadPlanXml](#loadplanxml)
* [moveCamera](#movecamera)
* [moveElementPosition](#moveelementposition)
* [moveElementsPosition](#moveelementsposition)
* [onCloseHSC](#onclosehsc)
* [openOrCloseGeometryOfExternalObject](#openorclosegeometryofexternalobject)
* [preparePerspectiveImage](#prepareperspectiveimage)
* [preparePerspectiveImageOf](#prepareperspectiveimageof)
* [prepareTopImage](#preparetopimage)
* [removeAttic](#removeattic)
* [removeElements](#removeelements)
* [removeExternalObjectGroup](#removeexternalobjectgroup)
* [removeExternalObjectRootModule](#removeexternalobjectrootmodule)
* [renderImagesOfExternalObjectGroup](#renderimagesofexternalobjectgroup)
* [resetCameraPosition](#resetcameraposition)
* [resolveShortUrl](#resolveshorturl)
* [rotateSelection](#rotateselection)
* [saveCurrentPlanSnapshot](#savecurrentplansnapshot)
* [saveExternalObjectSnapshot](#saveexternalobjectsnapshot)
* [selectExternalObjectGroup](#selectexternalobjectgroup)
* [selectExternalObjectRootModule](#selectexternalobjectrootmodule)
* [selectExternalObjectSubModule](#selectexternalobjectsubmodule)
* [selectPlanObjectById](#selectplanobjectbyid)
* [setAtticSide](#setatticside)
* [setCameraOffset](#setcameraoffset)
* [setEnvironmentMap](#setenvironmentmap)
* [setMeasurementLineLength](#setmeasurementlinelength)
* [setObjectToWallMeasurementLength](#setobjecttowallmeasurementlength)
* [setOverrides](#setoverrides)
* [setSceneEvents](#setsceneevents)
* [setWallMeasurementLength](#setwallmeasurementlength)
* [showBenchmarks](#showbenchmarks)
* [showGUI](#showgui)
* [showStats](#showstats)
* [showsChildrenOfPlanObject](#showschildrenofplanobject)
* [startConfiguring](#startconfiguring)
* [startViewing](#startviewing)
* [swapObject](#swapobject)
* [switch2D](#switch2d)
* [switch3D](#switch3d)
* [switchToConfigurator](#switchtoconfigurator)
* [switchToFirstPerson](#switchtofirstperson)
* [switchToPlanner](#switchtoplanner)
* [switchToViewer](#switchtoviewer)
* [syncCatalog](#synccatalog)
* [toggleConfigureInRoom](#toggleconfigureinroom)
* [update](#update)
* [updateAtticKneeHeight](#updateattickneeheight)
* [updateAtticWidth](#updateatticwidth)
* [updateScene](#updatescene)
* [updateSize](#updatesize)

## Constructors

### constructor

• **new default**<`P`>(`creator`, `activePlugins?`)

#### Type parameters

| Name | Type                                                    |
| ---- | ------------------------------------------------------- |
| `P`  | extends readonly `"external-objects"`\[] = readonly \[] |

#### Parameters

| Name             | Type     |
| ---------------- | -------- |
| `creator`        | `string` |
| `activePlugins?` | `P`      |

## Properties

### \_creator\_

• **\_creator\_**: `string`

#### Implementation of

[Context](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.context.md).[*creator*](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.context.md#_creator_)

## Accessors

### PlannerCoreTypes

• `get` **PlannerCoreTypes**(): [`PlannerKernelContainer`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_services_configurator_ui_callback._internal_.plannerkernelcontainer.md)

#### Returns

[`PlannerKernelContainer`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_services_configurator_ui_callback._internal_.plannerkernelcontainer.md)

an object which has all type constants from Roomle Core (C/C++)

***

### callbacks

• `get` **callbacks**(): [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/planner_core_src_roomle_planner_ui_callback.default.md)

#### Returns

[`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/planner_core_src_roomle_planner_ui_callback.default.md)

#### Implementation of

[ExternalEmbeddable](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.externalembeddable.md).[callbacks](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.externalembeddable.md#callbacks)

• `set` **callbacks**(`callback`): `void`

#### Parameters

| Name       | Type                                                                                                                |
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
| `callback` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/planner_core_src_roomle_planner_ui_callback.default.md) |

#### Returns

`void`

#### Implementation of

[ExternalEmbeddable](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.externalembeddable.md).[callbacks](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.externalembeddable.md#callbacks)

***

### hasSingleRoom

• `get` **hasSingleRoom**(): `boolean`

Check if the 3D scene contains only one room

#### Returns

`boolean`

True if there is only one room, false otherwise

## Methods

### \_selectExternalObjectGroup

▸ **\_selectExternalObjectGroup**(`groupId`, `switchToPlanner`): `Promise`<`void`>

#### Parameters

| Name              | Type      |
| ----------------- | --------- |
| `groupId`         | `string`  |
| `switchToPlanner` | `boolean` |

#### Returns

`Promise`<`void`>

***

### \_selectExternalObjectModule

▸ **\_selectExternalObjectModule**(`rootModuleId`, `subModuleId`, `selectPlanObject`, `switchToConfigurator`, `selectComponent`, `highlightSelection`): `Promise`<`void`>

#### Parameters

| Name                   | Type      |
| ---------------------- | --------- |
| `rootModuleId`         | `string`  |
| `subModuleId`          | `string`  |
| `selectPlanObject`     | `boolean` |
| `switchToConfigurator` | `boolean` |
| `selectComponent`      | `boolean` |
| `highlightSelection`   | `boolean` |

#### Returns

`Promise`<`void`>

***

### addAtticToWall

▸ **addAtticToWall**(`wall`, `kneeHeight`, `width`, `preferredSide?`): [`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md)

Creates a sloping roof attic on a given wall.

#### Parameters

| Name             | Type                                                                                                                                  | Description                               |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `wall`           | [`KernelWall`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelwall.md) | The wall to add an attic to.              |
| `kneeHeight`     | `number`                                                                                                                              | Height of the attic knee wall.            |
| `width`          | `number`                                                                                                                              | Width of the sloping roof.                |
| `preferredSide?` | [`WallSide`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.wallside.md)     | The side where the attic should be added. |

#### Returns

[`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md)

The newly created attic.

***

### back

▸ **back**(): `void`

#### Returns

`void`

***

### backTo

▸ **backTo**(`_cssClass`): `void`

#### Parameters

| Name        | Type     |
| ----------- | -------- |
| `_cssClass` | `string` |

#### Returns

`void`

***

### backToPlanner

▸ **backToPlanner**(): `void`

#### Returns

`void`

***

### calcPartsPriceSum

▸ **calcPartsPriceSum**(`partList`): `Promise`<[`KernelPartListPrice`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelpartlistprice.md)>

#### Parameters

| Name       | Type                                                                                                    |
| ---------- | ------------------------------------------------------------------------------------------------------- |
| `partList` | [`KernelPartList`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelpartlist.md) |

#### Returns

`Promise`<[`KernelPartListPrice`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelpartlistprice.md)>

***

### cancelSelection

▸ **cancelSelection**(`reason?`): `void`

#### Parameters

| Name     | Type                                                                                                                                                       | Default value |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `reason` | [`CancelSelectionReasons`](/rubens/rubens-sdk/rubens-sdk-reference/modules/configurator_core_src_roomle_configurator._internal_.md#cancelselectionreasons) | `'unknown'`   |

#### Returns

`void`

#### Implementation of

RoomlePlannerCallback.cancelSelection

***

### changeExteriorWallsMaterial

▸ **changeExteriorWallsMaterial**(`material`): `void`

#### Parameters

| Name       | Type                                                                                                                             |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `material` | [`BatchPaintMaterial`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.batchpaintmaterial.md) |

#### Returns

`void`

***

### changeFloorsMaterial

▸ **changeFloorsMaterial**(`material`): `void`

#### Parameters

| Name       | Type                                                                                                                             |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `material` | [`BatchPaintMaterial`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.batchpaintmaterial.md) |

#### Returns

`void`

***

### changeInteriorWallsMaterial

▸ **changeInteriorWallsMaterial**(`material`): `void`

#### Parameters

| Name       | Type                                                                                                                             |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `material` | [`BatchPaintMaterial`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.batchpaintmaterial.md) |

#### Returns

`void`

***

### configureExternalObjectApi

▸ **configureExternalObjectApi**(`configurationJson`): `Promise`<`void`>

With "configureExternalObjectApi" the default representation of the objects and UI and\
the default behavior when interacting with external objects can be completely or partially overwritten.\
This configuration should be set prior to loading plans or objects.

#### Parameters

| Name                | Type                                                                                                                                                                               | Description                                 |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| `configurationJson` | `string` \| [`ExternalObjectApiConfiguration`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_configurator._internal_.externalobjectapiconfiguration.md) | The configuration JSON as string or object. |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[configureExternalObjectApi](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#configureexternalobjectapi)

***

### createNewSerializedConfiguration

▸ **createNewSerializedConfiguration**(`configurationRuntimeId`): `Promise`<`string`>

#### Parameters

| Name                     | Type     |
| ------------------------ | -------- |
| `configurationRuntimeId` | `number` |

#### Returns

`Promise`<`string`>

***

### createPlanFromObject

▸ **createPlanFromObject**(`id`, `position?`, `rotation?`): `Promise`<`number`>

creates and loads a plan from a given object

#### Parameters

| Name        | Type                                                                                                             | Description                  |
| ----------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| `id`        | `string`                                                                                                         |                              |
| `position?` | [`Position3`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.position3.md) |                              |
| `rotation?` | `number`                                                                                                         | return the object runtime id |

#### Returns

`Promise`<`number`>

***

### deleteSelection

▸ **deleteSelection**(): `void`

#### Returns

`void`

#### Implementation of

RoomlePlannerCallback.deleteSelection

***

### disableAdvancedDocking

▸ **disableAdvancedDocking**(): `void`

disable docking of objects that fit together when objects are snapped in the plan

#### Returns

`void`

***

### disableEvents

▸ **disableEvents**(): `void`

#### Returns

`void`

***

### disableMeasurementLineDrawing

▸ **disableMeasurementLineDrawing**(): `void`

#### Returns

`void`

***

### disableMultiselect

▸ **disableMultiselect**(): `void`

Disable the selection of multiple elements.

#### Returns

`void`

***

### disableRotation

▸ **disableRotation**(): `void`

Disable rotation of selected elements

#### Returns

`void`

***

### disableShowChildrenOfPlanObject

▸ **disableShowChildrenOfPlanObject**(`planElementViewModel`): `void`

disable interaction with child components of configurable objects in the plan

#### Parameters

| Name                   | Type                                                                                                                            |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `planElementViewModel` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md) |

#### Returns

`void`

***

### disableSnapping

▸ **disableSnapping**(): `void`

disable all types of snapping

#### Returns

`void`

***

### disableWallDrawing

▸ **disableWallDrawing**(): `void`

#### Returns

`void`

***

### downloadHomagIxExportPoC

▸ **downloadHomagIxExportPoC**(): `Promise`<`any`>

#### Returns

`Promise`<`any`>

***

### dragInObject

▸ **dragInObject**(`idOrSerializedConfigString`, `dragEvent`, `type?`): `Promise`<`number`>

#### Parameters

| Name                         | Type                                                                                                    | Default value |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- | ------------- |
| `idOrSerializedConfigString` | `string`                                                                                                | `undefined`   |
| `dragEvent`                  | `DragEvent`                                                                                             | `undefined`   |
| `type`                       | [`ID_TYPE`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner.md#id_type) | `'rml_id'`    |

#### Returns

`Promise`<`number`>

***

### drawWalls

▸ **drawWalls**(`wallDefinitions`, `interactionOptions?`): [`KernelWall`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelwall.md)\[]

Draws walls according to the wall definitions\
this can be used to create a room on the fly

#### Parameters

| Name                 | Type                                                                                                                             |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `wallDefinitions`    | [`WallDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.walldefinition.md)\[]      |
| `interactionOptions` | [`InteractionOptions`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.interactionoptions.md) |

#### Returns

[`KernelWall`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelwall.md)\[]

***

### duplicateItems

▸ **duplicateItems**(`itemList`): [`PlanObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planobject.md)\[]

Duplicates all planObjects in the array and inserts them into the current plan

#### Parameters

| Name       | Type                                                                                                                                     | Description          |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| `itemList` | [`PlanObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planobject.md)\[] | Array of PlanObjects |

#### Returns

[`PlanObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planobject.md)\[]

***

### enableAdvancedDocking

▸ **enableAdvancedDocking**(): `void`

enable docking of objects that fit together when objects are snapped in the plan

#### Returns

`void`

***

### enableEvents

▸ **enableEvents**(): `void`

#### Returns

`void`

***

### enableMeasurementLineDrawing

▸ **enableMeasurementLineDrawing**(): `void`

#### Returns

`void`

***

### enableMultiselect

▸ **enableMultiselect**(): `void`

Enable the selection of multiple elements.\
Common parameters shared between those elements can then be changed at once

#### Returns

`void`

#### Implementation of

[RubensAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md).[enableMultiselect](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md#enablemultiselect)

***

### enableRotation

▸ **enableRotation**(): `void`

Enables rotation of selected elements

#### Returns

`void`

***

### enableShowChildrenOfPlanObject

▸ **enableShowChildrenOfPlanObject**(`planElementViewModel`): `void`

enable interaction with child components of configurable objects in the plan

#### Parameters

| Name                   | Type                                                                                                                            |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `planElementViewModel` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md) |

#### Returns

`void`

***

### enableSnapping

▸ **enableSnapping**(): `void`

enable snapping of object to object and object to wall

#### Returns

`void`

***

### enableWallDrawing

▸ **enableWallDrawing**(): `void`

#### Returns

`void`

***

### escapeDrawing

▸ **escapeDrawing**(`cancelDrawing`): `void`

#### Parameters

| Name            | Type      |
| --------------- | --------- |
| `cancelDrawing` | `boolean` |

#### Returns

`void`

***

### exportCanvasScreenshot

▸ **exportCanvasScreenshot**(`quality?`): `Promise`<`string`>

#### Parameters

| Name       | Type     |
| ---------- | -------- |
| `quality?` | `number` |

#### Returns

`Promise`<`string`>

#### Implementation of

[RubensAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md).[exportCanvasScreenshot](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md#exportcanvasscreenshot)

***

### exportGLB

▸ **exportGLB**(): `void`

#### Returns

`void`

***

### exportImageFromCamera

▸ **exportImageFromCamera**(`filename?`, `shouldWaitForAssets?`): `Promise`<`void`>

#### Parameters

| Name                  | Type      | Default value |
| --------------------- | --------- | ------------- |
| `filename`            | `string`  | `'image'`     |
| `shouldWaitForAssets` | `boolean` | `false`       |

#### Returns

`Promise`<`void`>

#### Implementation of

[RubensAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md).[exportImageFromCamera](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md#exportimagefromcamera)

***

### formatValueToUnitString

▸ **formatValueToUnitString**(`value`, `parameter`): `string` | `number`

Returns the formatted value based on the parameter.unitType

#### Parameters

| Name        | Type                                                                                                      |
| ----------- | --------------------------------------------------------------------------------------------------------- |
| `value`     | `number`                                                                                                  |
| `parameter` | [`KernelParameter`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelparameter.md) |

#### Returns

`string` | `number`

***

### generateTCExport

▸ **generateTCExport**(`planObjectIds?`): `Promise`<`any`>

#### Parameters

| Name            | Type        | Default value |
| --------------- | ----------- | ------------- |
| `planObjectIds` | `string`\[] | `[]`          |

#### Returns

`Promise`<`any`>

***

### getAttachedAttic

▸ **getAttachedAttic**(`wall`): [`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md)

Gets the attached attic from a wall.

#### Parameters

| Name   | Type                                                                                                                                  | Description                          |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| `wall` | [`KernelWall`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelwall.md) | The wall to retrieve the attic from. |

#### Returns

[`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md)

The first attached attic or null.

***

### getCameraOffset

▸ **getCameraOffset**(): [`CanvasOffset`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.canvasoffset.md)

Gets the available screen space for our item\
default: 'left: 0, top: 1, right: 1, bottom: 0'

#### Returns

[`CanvasOffset`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.canvasoffset.md)

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[getCameraOffset](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#getcameraoffset)

***

### getConfigurator

▸ **getConfigurator**(): [`Configurator`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator.configurator.md)

#### Returns

[`Configurator`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator.configurator.md)

***

### getConfiguratorApi

▸ **getConfiguratorApi**(): [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator.default.md)<`P`>

#### Returns

[`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator.default.md)<`P`>

***

### getConfiguratorContext

▸ **getConfiguratorContext**(): [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-7.md)

returns class containing configurator specific data properties

#### Returns

[`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-7.md)

***

### getCurrentSkin

▸ **getCurrentSkin**(): `Promise`<[`RapiSkin`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiskin.md)>

#### Returns

`Promise`<[`RapiSkin`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiskin.md)>

***

### getExternalObjectGroups

▸ **getExternalObjectGroups**(): `Promise`<`object`\[]>

"getExternalObjectGroups" returns all groups of external objects modules (PosData) that are currently loaded in the plan.

#### Returns

`Promise`<`object`\[]>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[getExternalObjectGroups](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#getexternalobjectgroups)

***

### getObjects

▸ **getObjects**(): `Promise`<[`UiPlanObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.uiplanobject.md)\[]>

returns all objects found in the current plan\
this includes info about size, rotation, id and parts

#### Returns

`Promise`<[`UiPlanObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.uiplanobject.md)\[]>

***

### getPartlistOf

▸ **getPartlistOf**(`id`): `Promise`<[`KernelPartList`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelpartlist.md)>

get the Partlist of certain runtimeID\
can be used if partlist of a selected Item is needed

#### Parameters

| Name | Type     | Description                      |
| ---- | -------- | -------------------------------- |
| `id` | `number` | runtimeID of a configurable item |

#### Returns

`Promise`<[`KernelPartList`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelpartlist.md)>

kernelPartlist with processed price, currency and RAL colors

***

### getPlanInteractionHandler

▸ **getPlanInteractionHandler**(): `Promise`<[`PlanInteractionHandler`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planinteractionhandler.md)>

#### Returns

`Promise`<[`PlanInteractionHandler`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planinteractionhandler.md)>

***

### getPlanModelViewHelper

▸ **getPlanModelViewHelper**(): `Promise`<[`PlanModelViewHelper`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planmodelviewhelper.md)>

#### Returns

`Promise`<[`PlanModelViewHelper`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planmodelviewhelper.md)>

***

### getPlanOverview

▸ **getPlanOverview**(): `Promise`<[`PlanOverview`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planoverview.md)>

get all info available for the current plan, including objects, rooms and walls

#### Returns

`Promise`<[`PlanOverview`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planoverview.md)>

***

### getPlanXmlFrom

▸ **getPlanXmlFrom**(`plan`): `any`

#### Parameters

| Name   | Type                                                                                                                                                                                                                             |
| ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `plan` | [`RapiPlan`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplan.md) \| [`RapiPlanSnapshotGetData`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdata.md) |

#### Returns

`any`

***

### getRuntimeComponentIdOfRootComponent

▸ **getRuntimeComponentIdOfRootComponent**(`planObjectId`): `number`

Returns the runtime component id of the plan object with the given id

#### Parameters

| Name           | Type     | Description                                                                               |
| -------------- | -------- | ----------------------------------------------------------------------------------------- |
| `planObjectId` | `number` | id of the plan object you want to get the runtime component id of the root component from |

#### Returns

`number`

number the number of the runtime id of the root component

#### Implementation of

[KernelUtilityForUi](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelutilityforui.md).[getRuntimeComponentIdOfRootComponent](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelutilityforui.md#getruntimecomponentidofrootcomponent)

***

### getScene

▸ **getScene**(): `Scene`

Returns the three.js scene (<https://threejs.org/docs/#api/en/scenes/Scene)\\>
WARNING: This is the actual scene (reference) and not a copy!

#### Returns

`Scene`

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[getScene](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#getscene)

***

### getStorage

▸ **getStorage**(): [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-1.md)

returns manager class to interface with indexedDB storage

#### Returns

[`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-1.md)

#### Implementation of

[RubensAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md).[getStorage](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md#getstorage)

***

### getUnitFormatter

▸ **getUnitFormatter**(): [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default.md)

returns unit formatter for formatting input und output values in scene

#### Returns

[`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default.md)

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[getUnitFormatter](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#getunitformatter)

***

### getWallAngleDegrees

▸ **getWallAngleDegrees**(`wall`): `number`

Returns the wall angle in degrees relative to the camera

#### Parameters

| Name   | Type                                                                                                                 | Description                         |
| ------ | -------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `wall` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/planner_core_src_roomle_planner._internal_.default-1.md) | a WallPlanElementViewModel instance |

#### Returns

`number`

***

### hasWalls

▸ **hasWalls**(): `boolean`

#### Returns

`boolean`

***

### highlightPlanElements

▸ **highlightPlanElements**(`runtimeIds`): `void`

Highlights one or more objects in the scene based on their runtime IDs.\
If `runtimeIds` is `null`, all highlighted objects will be unhighlighted.

#### Parameters

| Name         | Type                    | Description                                            |
| ------------ | ----------------------- | ------------------------------------------------------ |
| `runtimeIds` | `number` \| `number`\[] | A single runtime ID, an array of runtime IDs, or null. |

#### Returns

`void`

***

### importGLB

▸ **importGLB**(`url`): `void`

#### Parameters

| Name  | Type     |
| ----- | -------- |
| `url` | `string` |

#### Returns

`void`

***

### init

▸ **init**(`element`, `preloadPlanId?`, `options?`): `Promise`<`void`>

#### Parameters

| Name             | Type                                                                                                                                                                                                                                                                    |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `element`        | `HTMLElement`                                                                                                                                                                                                                                                           |
| `preloadPlanId?` | `string`                                                                                                                                                                                                                                                                |
| `options?`       | [`InitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.initdatadefinition.md) & [`GlobalInitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.globalinitdatadefinition.md) |

#### Returns

`Promise`<`void`>

***

### insertItemList

▸ **insertItemList**(`ids`): `Promise`<`number`\[]>

#### Parameters

| Name  | Type        |
| ----- | ----------- |
| `ids` | `string`\[] |

#### Returns

`Promise`<`number`\[]>

***

### insertItems

▸ **insertItems**(`itemList`): `Promise`<`number`\[]>

Inserts all of the items in the array into current plan

#### Parameters

| Name       | Type                                                                                                                                                                                                                                                                                                                                                                                              | Description                                 |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| `itemList` | ([`RapiItem`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiitem.md) \| [`RapiConfiguration`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiconfiguration.md) \| \`\_\_ext\_\_obj\_\_#${string}\` \| [`ExternalObject`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner._internal_.md#externalobject))\[] | Array of items received from the Roomle API |

#### Returns

`Promise`<`number`\[]>

***

### insertObject

▸ **insertObject**(`id`, `position?`, `rotation?`): `Promise`<`number`>

Inserts the object into the scene (at a given position and rotation)

#### Parameters

| Name        | Type                                                                                                             | Description                                              |
| ----------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `id`        | `string`                                                                                                         |                                                          |
| `position?` | [`Position3`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.position3.md) | x (left/right),y (up, down) and z(front, back) in meters |
| `rotation?` | `number`                                                                                                         | in radians                                               |

#### Returns

`Promise`<`number`>

***

### isCurrentlyDrawing

▸ **isCurrentlyDrawing**(): `boolean`

#### Returns

`boolean`

***

### isReady

▸ **isReady**(): `void`

#### Returns

`void`

#### Implementation of

[KernelAccessCallbackI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelaccesscallbacki.md).[isReady](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelaccesscallbacki.md#isready)

***

### loadError

▸ **loadError**(`error?`): `void`

#### Parameters

| Name     | Type  |
| -------- | ----- |
| `error?` | `any` |

#### Returns

`void`

#### Implementation of

[KernelAccessCallbackI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelaccesscallbacki.md).[loadError](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelaccesscallbacki.md#loaderror)

***

### loadExternalObjectGroup

▸ **loadExternalObjectGroup**(`groupData`, `findFreeSpaceInPlan`, `verifyArrangement?`, `mergedGroups?`): `Promise`<`void`>

"loadExternalObjectGroup" loads a group of modules and places them in the plan.\
If the group has already been loaded, it is completely replaced by the new group.\
This function therefore has 2 use cases:

1. Load a new group of modules
2. Update or modify an existing group of modules\
   The initial location of the group and the IDs of the modules are defined in the group JSON.

#### Parameters

| Name                  | Type                                                                                                                                   | Default value | Description                                                                                                              |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `groupData`           | [`ExternalGroupData`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner._internal_.md#externalgroupdata) | `undefined`   | The group JSON as string or object.                                                                                      |
| `findFreeSpaceInPlan` | `boolean`                                                                                                                              | `undefined`   | A free space is automatically searched for in the plane.                                                                 |
| `verifyArrangement`   | `boolean`                                                                                                                              | `false`       | Verify whether the root modules of the group need to be rearranged as they have changed in size.                         |
| `mergedGroups`        | `string`\[]                                                                                                                            | `[]`          | Groups that were merged into another group and have to be delete (this is required to generate correct undo/redo steps). |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[loadExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#loadexternalobjectgroup)

***

### loadExternalObjectLibrary

▸ **loadExternalObjectLibrary**(`libraryJson`): `void`

"loadExternalObjectLibrary" loads the master data of a library.\
If master data has already been loaded for the library, it is completely replaced by the new master data.

#### Parameters

| Name          | Type                 | Description                           |
| ------------- | -------------------- | ------------------------------------- |
| `libraryJson` | `string` \| `object` | The library JSON as string or object. |

#### Returns

`void`

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[loadExternalObjectLibrary](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#loadexternalobjectlibrary)

***

### loadPlan

▸ **loadPlan**(`id`, `options?`): `Promise`<[`RapiPlan`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplan.md) | [`RapiPlanSnapshotGetData`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdata.md)>

#### Parameters

| Name       | Type                                                                                                                                                                                                                                                                    |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`       | `string`                                                                                                                                                                                                                                                                |
| `options?` | [`InitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.initdatadefinition.md) & [`GlobalInitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.globalinitdatadefinition.md) |

#### Returns

`Promise`<[`RapiPlan`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplan.md) | [`RapiPlanSnapshotGetData`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdata.md)>

***

### loadPlanXml

▸ **loadPlanXml**(`xml`, `options?`): `Promise`<`void`>

#### Parameters

| Name       | Type                                                                                                                                                                                                                                                                    |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `xml`      | `string`                                                                                                                                                                                                                                                                |
| `options?` | [`InitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.initdatadefinition.md) & [`GlobalInitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.globalinitdatadefinition.md) |

#### Returns

`Promise`<`void`>

***

### moveCamera

▸ **moveCamera**(`cameraParameter`): `Promise`<`void`>

#### Parameters

| Name              | Type                                                                                                                                            |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `cameraParameter` | [`CameraParameter`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.cameraparameter.md) |

#### Returns

`Promise`<`void`>

***

### moveElementPosition

▸ **moveElementPosition**(`selectedElement`, `position`): `void`

Move the current selected element in the 3D space

#### Parameters

| Name              | Type                                                                                                                            | Description                                                                                     |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `selectedElement` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md) | this is the current selected plan object                                                        |
| `position`        | [`KernelVector3`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelvector3.md)                           | new KernelVector3 position of the current selected element returns runtime ID of the new object |

#### Returns

`void`

***

### moveElementsPosition

▸ **moveElementsPosition**(`selectedElements`, `position`): `void`

Moves the current multi-selected elements in the 3D space

#### Parameters

| Name               | Type                                                                                                                               | Description                                                                                     |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `selectedElements` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md)\[] | this is the current selected plan object                                                        |
| `position`         | [`KernelVector3`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.kernelvector3.md)                              | new KernelVector3 position of the current selected element returns runtime ID of the new object |

#### Returns

`void`

***

### onCloseHSC

▸ **onCloseHSC**(): `void`

#### Returns

`void`

***

### openOrCloseGeometryOfExternalObject

▸ **openOrCloseGeometryOfExternalObject**(`groupIdOrRootModuleId`, `subModuleId`, `open`, `animate`): `Promise`<`void`>

"openOrCloseGeometryOfExternalObject" switches the geometry of the modules between closed and open representation.\
The function can switch the geometry of the group or the singe root module with the ID "groupIdOrRootModuleId".\
If "groupIdOrRootModuleId" is the ID of a root module and the "subModuleId" is also specified, only this one sub-module is opened or closed.

#### Parameters

| Name                    | Type      | Description                                                                                                                   |
| ----------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `groupIdOrRootModuleId` | `string`  | The ID of the group of modules or the ID of the root module.                                                                  |
| `subModuleId`           | `string`  | The ID of the sub module.                                                                                                     |
| `open`                  | `boolean` | If true, the modules are opened, if false, they are closed, if the geometry is already in the desired state, nothing happens. |
| `animate`               | `boolean` | If true the opening or closing is animated else the geometry is switched instantly.                                           |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[openOrCloseGeometryOfExternalObject](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#openorclosegeometryofexternalobject)

***

### preparePerspectiveImage

▸ **preparePerspectiveImage**(`options?`, `isolationMode?`): `Promise`<[`Base64Image`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.base64image.md)>

Generates a perspective image (slightly from the side) and returns it as base64

#### Parameters

| Name            | Type                                                                                                                                                    | Default value | Description                                                                                          |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------- |
| `options`       | [`PrepareImageOptions`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.prepareimageoptions.md) | `{}`          |                                                                                                      |
| `isolationMode` | `boolean`                                                                                                                                               | `false`       | defaults to false. Determines whether to generate a perspective image for the current configuration. |

#### Returns

`Promise`<[`Base64Image`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.base64image.md)>

***

### preparePerspectiveImageOf

▸ **preparePerspectiveImageOf**(`runtimeId`, `options?`): `Promise`<[`Base64Image`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.base64image.md)>

Generates a perspective image (slightly from the side) of a plan element by a\
given runtime-id and returns it as base64

#### Parameters

| Name        | Type                                                                                                                                                    | Description                                              |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `runtimeId` | `number`                                                                                                                                                | runtime-id of the plan element, e.g.: a selected element |
| `options`   | [`PrepareImageOptions`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.prepareimageoptions.md) | PrepareImageOptions                                      |

#### Returns

`Promise`<[`Base64Image`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.base64image.md)>

***

### prepareTopImage

▸ **prepareTopImage**(`options?`): `Promise`<[`Base64Image`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.base64image.md)>

Generates a top image (birds eye view) and returns it as base64

#### Parameters

| Name      | Type                                                                                                                                                    |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `options` | [`PrepareImageOptions`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.prepareimageoptions.md) |

#### Returns

`Promise`<[`Base64Image`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.base64image.md)>

***

### removeAttic

▸ **removeAttic**(`attic`): `void`

Removes an attic from a wall.

#### Parameters

| Name    | Type                                                                                                                                    | Description              |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| `attic` | [`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md) | The attic to be removed. |

#### Returns

`void`

***

### removeElements

▸ **removeElements**(`kernelPlanElements`, `interactionOptions?`): `Promise`<`void`>

#### Parameters

| Name                 | Type                                                                                                                                         |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `kernelPlanElements` | [`KernelObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelobject.md)\[] |
| `interactionOptions` | [`InteractionOptions`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.interactionoptions.md)             |

#### Returns

`Promise`<`void`>

***

### removeExternalObjectGroup

▸ **removeExternalObjectGroup**(`groupId`, `wasMerged?`): `Promise`<`void`>

"removeExternalObjectGroup" removes a group and all its modules from the plan.

#### Parameters

| Name        | Type      | Default value | Description                                                                                                                   |
| ----------- | --------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `groupId`   | `string`  | `undefined`   | The ID of the group of modules.                                                                                               |
| `wasMerged` | `boolean` | `false`       | Should be set to true if the group has been merged with another group (this is required to generate correct undo/redo steps). |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[removeExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#removeexternalobjectgroup)

***

### removeExternalObjectRootModule

▸ **removeExternalObjectRootModule**(`rootModuleId`): `void`

"removeExternalObjectRootModule" removes a root module from a group and splits the remaining group if the removed root module is located between other root modules.\
If the group consists of only one root module, the group is removed.

#### Parameters

| Name           | Type     |
| -------------- | -------- |
| `rootModuleId` | `string` |

#### Returns

`void`

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[removeExternalObjectRootModule](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#removeexternalobjectrootmodule)

***

### renderImagesOfExternalObjectGroup

▸ **renderImagesOfExternalObjectGroup**(`groups`): `Promise`<{ `[key: string]`: `string`; }>

"renderImagesOfExternalObjectGroups" renders images of groups of modules.

#### Parameters

| Name     | Type     |
| -------- | -------- |
| `groups` | `object` |

#### Returns

`Promise`<{ `[key: string]`: `string`; }>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[renderImagesOfExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#renderimagesofexternalobjectgroup)

***

### resetCameraPosition

▸ **resetCameraPosition**(): `void`

#### Returns

`void`

#### Implementation of

[RubensAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md).[resetCameraPosition](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.rubensapi.md#resetcameraposition)

***

### resolveShortUrl

▸ **resolveShortUrl**(`shortUrl`): `Promise`<`string`>

Resolves a shortened URL.

#### Parameters

| Name       | Type     | Description                   |
| ---------- | -------- | ----------------------------- |
| `shortUrl` | `string` | The shortened URL to resolve. |

#### Returns

`Promise`<`string`>

* A promise that resolves to the URL.

***

### rotateSelection

▸ **rotateSelection**(`rotateBy`): `void`

rotates the selected item(s)

#### Parameters

| Name       | Type     | Description  |
| ---------- | -------- | ------------ |
| `rotateBy` | `number` | angle in rad |

#### Returns

`void`

#### Implementation of

RoomlePlannerCallback.rotateSelection

***

### saveCurrentPlanSnapshot

▸ **saveCurrentPlanSnapshot**(`parentPlanId?`, `configurationHashOrGroupId?`): `Promise`<[`RapiPlanSnapshotGetData`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdata.md)>

#### Parameters

| Name                          | Type                    |
| ----------------------------- | ----------------------- |
| `parentPlanId?`               | `string`                |
| `configurationHashOrGroupId?` | `string` \| `string`\[] |

#### Returns

`Promise`<[`RapiPlanSnapshotGetData`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdata.md)>

***

### saveExternalObjectSnapshot

▸ **saveExternalObjectSnapshot**(`parentPlanId?`): `Promise`<[`RapiPlanSnapshotGetDataWith3dUrls`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdatawith3durls.md)>

Saves a snapshot of the external objects in the plan without walls and other objects\
Also contains the urls to the glb and usdz files

#### Parameters

| Name            | Type     | Description                      |
| --------------- | -------- | -------------------------------- |
| `parentPlanId?` | `string` | id of the current plan, optional |

#### Returns

`Promise`<[`RapiPlanSnapshotGetDataWith3dUrls`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_rapi_types.rapiplansnapshotgetdatawith3durls.md)>

the snapshot of the external objects if there are no external objects it returns null

***

### selectExternalObjectGroup

▸ **selectExternalObjectGroup**(`groupId`): `Promise`<`void`>

"selectExternalObjectGroup" changes the selected object in the scene.\
The function selects a complete group of root modules and always switches to planning mode.\
If the group consists of only one root module, this is equivalent to selecting a single root module.

#### Parameters

| Name      | Type     | Description                     |
| --------- | -------- | ------------------------------- |
| `groupId` | `string` | The ID of the group of modules. |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[selectExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#selectexternalobjectgroup)

***

### selectExternalObjectRootModule

▸ **selectExternalObjectRootModule**(`rootModuleId`): `Promise`<`void`>

"selectExternalObjectRootModule" changes the selected object in the scene.\
The function selects a root module within a group and always switches to planning mode.

#### Parameters

| Name           | Type     | Description                |
| -------------- | -------- | -------------------------- |
| `rootModuleId` | `string` | The ID of the root module. |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[selectExternalObjectRootModule](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#selectexternalobjectrootmodule)

***

### selectExternalObjectSubModule

▸ **selectExternalObjectSubModule**(`rootModuleId`, `subModuleId`): `Promise`<`void`>

"selectExternalObjectSubModule" changes the selected object in the scene.\
The function selects a sub module a root module and always switches to configuration mode.

#### Parameters

| Name           | Type     | Description                |
| -------------- | -------- | -------------------------- |
| `rootModuleId` | `string` | The ID of the root module. |
| `subModuleId`  | `string` | The ID of the sub module.  |

#### Returns

`Promise`<`void`>

#### Implementation of

[ExternalObjectAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md).[selectExternalObjectSubModule](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner._internal_.externalobjectapi.md#selectexternalobjectsubmodule)

***

### selectPlanObjectById

▸ **selectPlanObjectById**(`runtimeId`): `Promise`<`void`>

select an object in the scene based on its runtime id

#### Parameters

| Name        | Type     |
| ----------- | -------- |
| `runtimeId` | `number` |

#### Returns

`Promise`<`void`>

***

### setAtticSide

▸ **setAtticSide**(`attic`, `side`): `void`

Set the attic direction from a wall.

#### Parameters

| Name    | Type                                                                                                                                    | Description              |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| `attic` | [`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md) | The attic to be removed. |
| `side`  | [`WallSide`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.wallside.md)       | -                        |

#### Returns

`void`

***

### setCameraOffset

▸ **setCameraOffset**(`offset`): `void`

Sets the available screen space for our item\
Example 1: right 0.9 means 10% padding on the right side\
Example 2: bottom 0.2 means 20% padding on the bottom side\
default: 'left: 0, top: 1, right: 1, bottom: 0'

#### Parameters

| Name     | Type                                                                                                                   |
| -------- | ---------------------------------------------------------------------------------------------------------------------- |
| `offset` | [`CanvasOffset`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_common_interfaces.canvasoffset.md) |

#### Returns

`void`

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[setCameraOffset](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#setcameraoffset)

***

### setEnvironmentMap

▸ **setEnvironmentMap**(`params`): `void`

#### Parameters

| Name                      | Type     |
| ------------------------- | -------- |
| `params`                  | `Object` |
| `params.intensity?`       | `number` |
| `params.maxLightSources?` | `number` |
| `params.rotation?`        | `number` |
| `params.url?`             | `string` |

#### Returns

`void`

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[setEnvironmentMap](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#setenvironmentmap)

***

### setMeasurementLineLength

▸ **setMeasurementLineLength**(`measurementId`, `length`, `wallDirection`): `void`

#### Parameters

| Name            | Type     |
| --------------- | -------- |
| `measurementId` | `number` |
| `length`        | `number` |
| `wallDirection` | `string` |

#### Returns

`void`

***

### setObjectToWallMeasurementLength

▸ **setObjectToWallMeasurementLength**(`planElementId`, `measurementId`, `length`): `void`

#### Parameters

| Name            | Type     |
| --------------- | -------- |
| `planElementId` | `number` |
| `measurementId` | `number` |
| `length`        | `number` |

#### Returns

`void`

***

### setOverrides

▸ **setOverrides**(`initData`): `void`

Set general configuration parameter

#### Parameters

| Name       | Type                                                                                                                                                                                                                                                                    |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `initData` | [`InitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.initdatadefinition.md) & [`GlobalInitDataDefinition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/common_core_src_utils_shims.globalinitdatadefinition.md) |

#### Returns

`void`

***

### setSceneEvents

▸ **setSceneEvents**(`sceneEvents`): `void`

set which events are enabled in the scene, for example disable selection of walls and wall nodes

#### Parameters

| Name          | Type                                                                                                               |
| ------------- | ------------------------------------------------------------------------------------------------------------------ |
| `sceneEvents` | [`SceneEvents`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner.sceneevents.md) |

#### Returns

`void`

***

### setWallMeasurementLength

▸ **setWallMeasurementLength**(`measurementId`, `length`, `wallDirection`): `void`

#### Parameters

| Name            | Type                                                                                                                                 |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `measurementId` | `number`                                                                                                                             |
| `length`        | `number`                                                                                                                             |
| `wallDirection` | [`EMSConstant`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.emsconstant.md) |

#### Returns

`void`

***

### showBenchmarks

▸ **showBenchmarks**(): `void`

#### Returns

`void`

***

### showGUI

▸ **showGUI**(): `void`

#### Returns

`void`

***

### showStats

▸ **showStats**(): `void`

#### Returns

`void`

***

### showsChildrenOfPlanObject

▸ **showsChildrenOfPlanObject**(`planElementViewModel`): `boolean`

returns true if interaction with the child components of a configuration object is enabled, and flashes otherwise

#### Parameters

| Name                   | Type                                                                                                                            |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `planElementViewModel` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md) |

#### Returns

`boolean`

***

### startConfiguring

▸ **startConfiguring**(): `void`

#### Returns

`void`

***

### startViewing

▸ **startViewing**(): `void`

#### Returns

`void`

***

### swapObject

▸ **swapObject**(`old`, `idOfNew`): `Promise`<`number`>

Swap two plan objects in the scene in the same position for example swap two object variants

#### Parameters

| Name      | Type                                                                                                                            | Description                                                             |
| --------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `old`     | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md) | this is the current selected plan object                                |
| `idOfNew` | `string`                                                                                                                        | the RAPI id of the new plan object returns runtime ID of the new object |

#### Returns

`Promise`<`number`>

***

### switch2D

▸ **switch2D**(): `void`

#### Returns

`void`

***

### switch3D

▸ **switch3D**(): `void`

#### Returns

`void`

***

### switchToConfigurator

▸ **switchToConfigurator**(): `Promise`<[`Configurator`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator.configurator.md)>

#### Returns

`Promise`<[`Configurator`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator.configurator.md)>

#### Implementation of

RoomlePlannerCallback.switchToConfigurator

***

### switchToFirstPerson

▸ **switchToFirstPerson**(): `void`

#### Returns

`void`

***

### switchToPlanner

▸ **switchToPlanner**(`id?`): `void`

#### Parameters

| Name  | Type     |
| ----- | -------- |
| `id?` | `string` |

#### Returns

`void`

***

### switchToViewer

▸ **switchToViewer**(): `Promise`<[`GlbViewer`](/rubens/rubens-sdk/rubens-sdk-reference/classes/glb_viewer_core_src_glb_viewer.glbviewer.md)>

#### Returns

`Promise`<[`GlbViewer`](/rubens/rubens-sdk/rubens-sdk-reference/classes/glb_viewer_core_src_glb_viewer.glbviewer.md)>

#### Implementation of

RoomlePlannerCallback.switchToViewer

***

### syncCatalog

▸ **syncCatalog**(`catalogId`): `Promise`<`void`>

#### Parameters

| Name        | Type     |
| ----------- | -------- |
| `catalogId` | `string` |

#### Returns

`Promise`<`void`>

***

### toggleConfigureInRoom

▸ **toggleConfigureInRoom**(): `void`

#### Returns

`void`

***

### update

▸ **update**(): `void`

#### Returns

`void`

***

### updateAtticKneeHeight

▸ **updateAtticKneeHeight**(`attic`, `kneeHeight`): `void`

Updates the knee height of an attic.

#### Parameters

| Name         | Type                                                                                                                                    | Description                |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
| `attic`      | [`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md) | The attic to update.       |
| `kneeHeight` | `number`                                                                                                                                | The new knee height value. |

#### Returns

`void`

***

### updateAtticWidth

▸ **updateAtticWidth**(`attic`, `width`): `void`

Updates the width of an attic.

#### Parameters

| Name    | Type                                                                                                                                    | Description          |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| `attic` | [`KernelAttic`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.kernelattic.md) | The attic to update. |
| `width` | `number`                                                                                                                                | The new width value. |

#### Returns

`void`

***

### updateScene

▸ **updateScene**(): `void`

Updates the scene (recalculating bounds) and restart rendering

#### Returns

`void`

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[updateScene](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#updatescene)

***

### updateSize

▸ **updateSize**(): `void`

#### Returns

`void`

#### Implementation of

[GlobalAPI](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md).[updateSize](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.globalapi.md#updatesize)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.roomle.com/rubens/rubens-sdk/rubens-sdk-reference/classes/planner_core_src_roomle_planner.default.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
