# RoomlePlannerUiCallback.default

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

## Hierarchy

* [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md)

  ↳ **`default`**

## Implements

* [`ExternalObjectUiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md)

## Table of contents

### Constructors

* [constructor](#constructor)

### Properties

* [\_creator\_](#_creator_)

### Methods

* [cameraStartsMoving](#camerastartsmoving)
* [disableWallDimensions](#disablewalldimensions)
* [get](#get)
* [mute](#mute)
* [onBackToPlanner](#onbacktoplanner)
* [onCameraChanged](#oncamerachanged)
* [onCameraIdle](#oncameraidle)
* [onChangedExternalObjectGroupPlan](#onchangedexternalobjectgroupplan)
* [onClickElement](#onclickelement)
* [onCompletelyLoaded](#oncompletelyloaded)
* [onComponentSelectionCancel](#oncomponentselectioncancel)
* [onConfiguratorKernelIsReady](#onconfiguratorkernelisready)
* [onContextChanged](#oncontextchanged)
* [onDeleteExternalObjectGroup](#ondeleteexternalobjectgroup)
* [onDeleteExternalObjectRootModule](#ondeleteexternalobjectrootmodule)
* [onDeleteExternalObjectSubModule](#ondeleteexternalobjectsubmodule)
* [onDragElementEnd](#ondragelementend)
* [onDragElementStart](#ondragelementstart)
* [onDrawCancel](#ondrawcancel)
* [onDrawingStateChanged](#ondrawingstatechanged)
* [onDuplicateExternalObjectGroup](#onduplicateexternalobjectgroup)
* [onExternalObjectAttributeChanged](#onexternalobjectattributechanged)
* [onExternalObjectEnvironmentChanged](#onexternalobjectenvironmentchanged)
* [onExternalObjectGroupArrangementChanged](#onexternalobjectgrouparrangementchanged)
* [onExternalObjectGroupChanged](#onexternalobjectgroupchanged)
* [onExternalObjectGroupLoaded](#onexternalobjectgrouploaded)
* [onExternalObjectModuleSelected](#onexternalobjectmoduleselected)
* [onExternalObjectSelectionCancel](#onexternalobjectselectioncancel)
* [onFloorPlanAreasUpdated](#onfloorplanareasupdated)
* [onGetConfigurationForExternalObject](#ongetconfigurationforexternalobject)
* [onHandlerSwitchedPlans](#onhandlerswitchedplans)
* [onHistoryChange](#onhistorychange)
* [onItemsLoaded](#onitemsloaded)
* [onMeasurementLineStateChange](#onmeasurementlinestatechange)
* [onMergeExternalObjectGroup](#onmergeexternalobjectgroup)
* [onMovedExternalObjectGroup](#onmovedexternalobjectgroup)
* [onMultiSelectionChange](#onmultiselectionchange)
* [onPlanChanged](#onplanchanged)
* [onPlanElementChanged](#onplanelementchanged)
* [onPlanInteractionHandlerCreated](#onplaninteractionhandlercreated)
* [onPlanSnapshotCreated](#onplansnapshotcreated)
* [onPlannerKernelIsReady](#onplannerkernelisready)
* [onReadyForRender](#onreadyforrender)
* [onRotationCancel](#onrotationcancel)
* [onSelectionCancel](#onselectioncancel)
* [onSelectionChange](#onselectionchange)
* [onSelectionModeChange](#onselectionmodechange)
* [onSplitExternalObjectGroup](#onsplitexternalobjectgroup)
* [onStartConfiguring](#onstartconfiguring)
* [onTotalFloorAreaChanged](#ontotalfloorareachanged)
* [onUpdateConstructionElementsMeasurements](#onupdateconstructionelementsmeasurements)
* [onUpdateMeasurementLineDimensions](#onupdatemeasurementlinedimensions)
* [onUpdateObjectMeasurements](#onupdateobjectmeasurements)
* [onUpdatePlanObjectPositions](#onupdateplanobjectpositions)
* [onUpdateWallDimensions](#onupdatewalldimensions)
* [unmute](#unmute)

## Constructors

### constructor

• **new default**(`creator`)

#### Parameters

| Name      | Type     |
| --------- | -------- |
| `creator` | `string` |

#### Overrides

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[constructor](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#constructor)

## Properties

### \_creator\_

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

#### Inherited from

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[*creator*](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#_creator_)

## Methods

### cameraStartsMoving

▸ **cameraStartsMoving**(): `void`

#### Returns

`void`

#### Inherited from

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[cameraStartsMoving](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#camerastartsmoving)

***

### disableWallDimensions

▸ **disableWallDimensions**(): `void`

This function gets called when the camera is moving and thus the wall dimensions should not be shown

#### Returns

`void`

***

### get

▸ **get**(`target`, `prop`): `string` | (`target`: [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md), `prop`: keyof [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md)) => `string` | (target: UiCallback, prop: keyof UiCallback) => string | ... | (() => void) | (() => void) | (() => void) | (() => void) | () => `void` | () => `void` | () => `void` | () => `void` | () => `void` | () => `void` | () => `void` | () => `void`

#### Parameters

| Name     | Type                                                                                                                              |
| -------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `target` | [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md)       |
| `prop`   | keyof [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md) |

#### Returns

`string` | (`target`: [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md), `prop`: keyof [`UiCallback`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md)) => `string` | (target: UiCallback, prop: keyof UiCallback) => string | ... | (() => void) | (() => void) | (() => void) | (() => void) | () => `void` | () => `void` | () => `void` | () => `void` | () => `void` | () => `void` | () => `void` | () => `void`

#### Inherited from

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[get](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#get)

***

### mute

▸ **mute**(): `void`

#### Returns

`void`

#### Inherited from

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[mute](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#mute)

***

### onBackToPlanner

▸ **onBackToPlanner**(): `Promise`<`void`>

Callback invoked when configuration is finished.

#### Returns

`Promise`<`void`>

***

### onCameraChanged

▸ **onCameraChanged**(`type`): `void`

#### Parameters

| Name   | Type                                                                                                                                                                                                          |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type` | [`Enumify`](/rubens/rubens-sdk/rubens-sdk-reference/modules/configurator_core_src_configurator._internal_.md#enumify)<{ `CAMERA_2D`: `"2D"` = '2D'; `CAMERA_3D`: `"3D"` = '3D'; `CAMERA_FP`: `"FP"` = 'FP' }> |

#### Returns

`void`

***

### onCameraIdle

▸ **onCameraIdle**(): `void`

#### Returns

`void`

***

### onChangedExternalObjectGroupPlan

▸ **onChangedExternalObjectGroupPlan**(`group`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name    | Type                                                                                                                                                    |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `group` | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md) |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onChangedExternalObjectGroupPlan](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onchangedexternalobjectgroupplan)

***

### onClickElement

▸ **onClickElement**(`planElement`): `void`

This function gets called when a selectable element has been clicked on.\
An equivalent function for component clicks is onClickComponent in the configurator-ui-callback.ts

#### Parameters

| Name          | Type                                                                                                                            | Description                                          |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| `planElement` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md) | PlanElementViewModel instance of the clicked element |

#### Returns

`void`

***

### onCompletelyLoaded

▸ **onCompletelyLoaded**(): `void`

When the plan has been completely loaded

#### Returns

`void`

***

### onComponentSelectionCancel

▸ **onComponentSelectionCancel**(): `void`

Callback invoked when the selection of a component has been canceled.

#### Returns

`void`

***

### onConfiguratorKernelIsReady

▸ **onConfiguratorKernelIsReady**(`kernelContainer`, `kernelInstance`): `void`

is called when the configurator kernel is ready. It returns the container and the instance

#### Parameters

| Name              | Type                                                                                                                                                                        |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `kernelContainer` | [`PlannerKernelContainer`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_services_configurator_ui_callback._internal_.plannerkernelcontainer.md) |
| `kernelInstance`  | [`ConfiguratorKernelClass`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.configuratorkernelclass.md)                                                   |

#### Returns

`void`

***

### onContextChanged

▸ **onContextChanged**(`context`): `void`

This callback is invoked when the context of the planner changes\
For example when it switches from planner to configurator, or from planner to viewer

#### Parameters

| Name      | Type                                                                                                                                 |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `context` | [`BASE_CONTEXT`](/rubens/rubens-sdk/rubens-sdk-reference/enums/configurator_core_src_roomle_configurator._internal_.base_context.md) |

#### Returns

`void`

***

### onDeleteExternalObjectGroup

▸ **onDeleteExternalObjectGroup**(`groupIdToDelete`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name              | Type     |
| ----------------- | -------- |
| `groupIdToDelete` | `string` |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onDeleteExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#ondeleteexternalobjectgroup)

***

### onDeleteExternalObjectRootModule

▸ **onDeleteExternalObjectRootModule**(`_remainingGroup`, `_rootModuleIdToDelete`, `_splitOffGroups?`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name                    | Type                                                                                                                                                       |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `_remainingGroup`       | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md)    |
| `_rootModuleIdToDelete` | `string`                                                                                                                                                   |
| `_splitOffGroups?`      | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md)\[] |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onDeleteExternalObjectRootModule](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#ondeleteexternalobjectrootmodule)

***

### onDeleteExternalObjectSubModule

▸ **onDeleteExternalObjectSubModule**(`rootModuleId`, `subModuleIdToDelete`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

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

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onDeleteExternalObjectSubModule](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#ondeleteexternalobjectsubmodule)

***

### onDragElementEnd

▸ **onDragElementEnd**(): `void`

This function gets called when a movable element was being dragged before and is now released

#### Returns

`void`

***

### onDragElementStart

▸ **onDragElementStart**(`planElementId`): `void`

This function gets called when a movable element begins to be dragged

#### Parameters

| Name            | Type     | Description                       |
| --------------- | -------- | --------------------------------- |
| `planElementId` | `number` | current id of the dragged element |

#### Returns

`void`

***

### onDrawCancel

▸ **onDrawCancel**(): `void`

#### Returns

`void`

***

### onDrawingStateChanged

▸ **onDrawingStateChanged**(`currentlyDrawing`): `void`

This updates if the user started/stopped drawing a wall

#### Parameters

| Name               | Type      |
| ------------------ | --------- |
| `currentlyDrawing` | `boolean` |

#### Returns

`void`

***

### onDuplicateExternalObjectGroup

▸ **onDuplicateExternalObjectGroup**(`sourceGroupId`, `newGroupPosition`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name               | Type                                                                                                                                                                    |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sourceGroupId`    | `string`                                                                                                                                                                |
| `newGroupPosition` | [`ExternalObjectGroupPosition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroupposition.md) |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onDuplicateExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onduplicateexternalobjectgroup)

***

### onExternalObjectAttributeChanged

▸ **onExternalObjectAttributeChanged**(`groupId`, `moduleIds`, `attributeId`, `value`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name          | Type                                                                                                                                         |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `groupId`     | `string`                                                                                                                                     |
| `moduleIds`   | `string` \| [`ExternalModuleInformation`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.externalmoduleinformation.md)\[] |
| `attributeId` | `string`                                                                                                                                     |
| `value`       | `string`                                                                                                                                     |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectAttributeChanged](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectattributechanged)

***

### onExternalObjectEnvironmentChanged

▸ **onExternalObjectEnvironmentChanged**(`affectedGroupIds`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

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

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectEnvironmentChanged](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectenvironmentchanged)

***

### onExternalObjectGroupArrangementChanged

▸ **onExternalObjectGroupArrangementChanged**(`changedGroup`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name           | Type                                                                                                                                                    |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `changedGroup` | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md) |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectGroupArrangementChanged](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectgrouparrangementchanged)

***

### onExternalObjectGroupChanged

▸ **onExternalObjectGroupChanged**(`stringifiedGroupData`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name                   | Type     |
| ---------------------- | -------- |
| `stringifiedGroupData` | `string` |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectGroupChanged](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectgroupchanged)

***

### onExternalObjectGroupLoaded

▸ **onExternalObjectGroupLoaded**(`stringifiedGroupData`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name                   | Type     |
| ---------------------- | -------- |
| `stringifiedGroupData` | `string` |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectGroupLoaded](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectgrouploaded)

***

### onExternalObjectModuleSelected

▸ **onExternalObjectModuleSelected**(`groupId`, `rootModuleId`, `subModuleId`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name           | Type     |
| -------------- | -------- |
| `groupId`      | `string` |
| `rootModuleId` | `string` |
| `subModuleId`  | `string` |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectModuleSelected](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectmoduleselected)

***

### onExternalObjectSelectionCancel

▸ **onExternalObjectSelectionCancel**(`reason`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name     | Type                                                                                                                                                       | Description                    |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| `reason` | [`CancelSelectionReasons`](/rubens/rubens-sdk/rubens-sdk-reference/modules/configurator_core_src_roomle_configurator._internal_.md#cancelselectionreasons) | why the selection was canceled |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onExternalObjectSelectionCancel](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onexternalobjectselectioncancel)

***

### onFloorPlanAreasUpdated

▸ **onFloorPlanAreasUpdated**(`floorAreasData`): `void`

Callback invoked when the dimensions of rooms are updated.\
It receives an array containing the computed areas of all rooms and related data, which may be used to display or process the area information of each room.

#### Parameters

| Name             | Type                                                                                                                                                                  | Description                                                                                           |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `floorAreasData` | [`FloorAreaDataTransferable`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner_ui_callback._internal_.md#floorareadatatransferable)\[] | An array of objects, each representing the area and related data for each room within the floor plan. |

#### Returns

`void`

***

### onGetConfigurationForExternalObject

▸ **onGetConfigurationForExternalObject**(`_rootModuleId`): `Promise`<[`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md)>

documented in interface ExternalObjectUiCallback

#### Parameters

| Name            | Type     |
| --------------- | -------- |
| `_rootModuleId` | `string` |

#### Returns

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

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onGetConfigurationForExternalObject](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#ongetconfigurationforexternalobject)

***

### onHandlerSwitchedPlans

▸ **onHandlerSwitchedPlans**(): `void`

#### Returns

`void`

***

### onHistoryChange

▸ **onHistoryChange**(`undo`, `redo`): `void`

gets called if history changes

#### Parameters

| Name   | Type      | Description              |
| ------ | --------- | ------------------------ |
| `undo` | `boolean` | true if undo is possible |
| `redo` | `boolean` | true if redo is possible |

#### Returns

`void`

***

### onItemsLoaded

▸ **onItemsLoaded**(): `void`

#### Returns

`void`

***

### onMeasurementLineStateChange

▸ **onMeasurementLineStateChange**(`isActive`): `void`

#### Parameters

| Name       | Type      |
| ---------- | --------- |
| `isActive` | `boolean` |

#### Returns

`void`

***

### onMergeExternalObjectGroup

▸ **onMergeExternalObjectGroup**(`targetGroup`, `idsOfGroupsMerged`, `idOfTargetRootModule`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name                   | Type                                                                                                                                                    |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `targetGroup`          | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md) |
| `idsOfGroupsMerged`    | `string` \| `string`\[]                                                                                                                                 |
| `idOfTargetRootModule` | `string`                                                                                                                                                |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onMergeExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onmergeexternalobjectgroup)

***

### onMovedExternalObjectGroup

▸ **onMovedExternalObjectGroup**(`group`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name    | Type                                                                                                                                                    |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `group` | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md) |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onMovedExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onmovedexternalobjectgroup)

***

### onMultiSelectionChange

▸ **onMultiSelectionChange**(`selectedElements`): `void`

#### Parameters

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

#### Returns

`void`

***

### onPlanChanged

▸ **onPlanChanged**(): `void`

When something in the plan has changed

#### Returns

`void`

***

### onPlanElementChanged

▸ **onPlanElementChanged**(`changeType`, `changedObject`): `void`

When an element in the plan has been added, removed or changed\
null if changed, added or removed object is not a item or configuration, such as a wall or construction element

#### Parameters

| Name            | Type                                                                                                                                                                                                                                                          |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `changeType`    | [`Enumify`](/rubens/rubens-sdk/rubens-sdk-reference/modules/configurator_core_src_configurator._internal_.md#enumify)<{ `ADDED`: `"added"` = 'added'; `CHANGED`: `"changed"` = 'changed'; `MOVED`: `"moved"` = 'moved'; `REMOVED`: `"removed"` = 'removed' }> |
| `changedObject` | [`UiPlanObject`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/typings_kernel.uiplanobject.md)                                                                                                                                                           |

#### Returns

`void`

***

### onPlanInteractionHandlerCreated

▸ **onPlanInteractionHandlerCreated**(`planInteractionHandler`): `void`

#### Parameters

| Name                     | Type                                                                                                                                                          |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `planInteractionHandler` | [`PlanInteractionHandler`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.planinteractionhandler.md) |

#### Returns

`void`

***

### onPlanSnapshotCreated

▸ **onPlanSnapshotCreated**(`planId`): `void`

Callback invoked when a plan snapshot is saved.

#### Parameters

| Name     | Type     | Description                  |
| -------- | -------- | ---------------------------- |
| `planId` | `string` | The ID of the plan snapshot. |

#### Returns

`void`

***

### onPlannerKernelIsReady

▸ **onPlannerKernelIsReady**(`kernelContainer`): `void`

is called when the planner kernel is ready. It returns the container and the instance

#### Parameters

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

#### Returns

`void`

***

### onReadyForRender

▸ **onReadyForRender**(): `void`

**`Deprecated`**

has been moved to global callbacks\
is called the scene is ready for rendering it as an image

#### Returns

`void`

#### Inherited from

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[onReadyForRender](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#onreadyforrender)

***

### onRotationCancel

▸ **onRotationCancel**(): `void`

When rotation mode has been canceled

#### Returns

`void`

***

### onSelectionCancel

▸ **onSelectionCancel**(`reason`): `void`

When an item selection has been canceled

#### Parameters

| Name     | Type                                                                                                                                                       | Description                    |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| `reason` | [`CancelSelectionReasons`](/rubens/rubens-sdk/rubens-sdk-reference/modules/configurator_core_src_roomle_configurator._internal_.md#cancelselectionreasons) | why the selection was canceled |

#### Returns

`void`

***

### onSelectionChange

▸ **onSelectionChange**(`selectionMode`, `objectType`, `payload`, `payloadPromise`, `planElementViewModel`): `void`

When an item has been selected

#### Parameters

| Name                   | Type                                                                                                                                                 | Description                                                                                                           |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `selectionMode`        | [`SELECTION_MODE`](/rubens/rubens-sdk/rubens-sdk-reference/enums/configurator_core_src_roomle_configurator._internal_.selection_mode.md)             |                                                                                                                       |
| `objectType`           | [`CallbackObjectType`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner_ui_callback._internal_.md#callbackobjecttype) | currently only static items and configurations are supported                                                          |
| `payload`              | [`SelectionPayload`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback.selectionpayload.md)             | returns the data which is available immediately (sync), currently this is catalogItemId and/or configurationRuntimeId |
| `payloadPromise`       | `Promise`<[`SelectionPayload`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback.selectionpayload.md)>  | this promise resolves when the data of an object is fetched                                                           |
| `planElementViewModel` | [`default`](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_roomle_configurator._internal_.default-52.md)                      | the plan element view model used internally, WARNING: this is a reference, use with caution                           |

#### Returns

`void`

***

### onSelectionModeChange

▸ **onSelectionModeChange**(`mode`): `void`

#### Parameters

| Name   | Type                                                                                                                                     |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `mode` | [`SELECTION_MODE`](/rubens/rubens-sdk/rubens-sdk-reference/enums/configurator_core_src_roomle_configurator._internal_.selection_mode.md) |

#### Returns

`void`

***

### onSplitExternalObjectGroup

▸ **onSplitExternalObjectGroup**(`originalGroup`, `newGroupedRootModules`): `void`

documented in interface ExternalObjectUiCallback

#### Parameters

| Name                    | Type                                                                                                                                                                                                                                                                                                                  |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `originalGroup`         | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md)                                                                                                                                                               |
| `newGroupedRootModules` | [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md) \| [`ExternalObjectGroup`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/configurator_core_src_roomle_configurator._internal_.externalobjectgroup.md)\[] |

#### Returns

`void`

#### Implementation of

[ExternalObjectUiCallback](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md).[onSplitExternalObjectGroup](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.externalobjectuicallback.md#onsplitexternalobjectgroup)

***

### onStartConfiguring

▸ **onStartConfiguring**(): `Promise`<`void`>

Callback invoked when an object is started to be configured.

#### Returns

`Promise`<`void`>

***

### onTotalFloorAreaChanged

▸ **onTotalFloorAreaChanged**(`totalFloorArea`): `void`

#### Parameters

| Name             | Type     |
| ---------------- | -------- |
| `totalFloorArea` | `number` |

#### Returns

`void`

***

### onUpdateConstructionElementsMeasurements

▸ **onUpdateConstructionElementsMeasurements**(`constructionMeasurementsMeasurements`): `void`

This function gets called when the camera has stopped moving,\
allowing for the calculation of the dimensions of construction elements' positions.\
It is also called when an element is selected or dragged on the plan.

#### Parameters

| Name                                   | Type                                                                                                                                                                                        | Description                                |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| `constructionMeasurementsMeasurements` | [`ConstructionMeasurementsTransferable`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.constructionmeasurementstransferable.md) | The measurements of construction elements. |

#### Returns

`void`

***

### onUpdateMeasurementLineDimensions

▸ **onUpdateMeasurementLineDimensions**(`measurementLineDimensions`): `void`

This function gets called when the camera is no longer moving\
and the position of the measurement line dimensions can be calculated

#### Parameters

| Name                        | Type                                                                                                                                                                                        |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `measurementLineDimensions` | [`MeasurementLineDimensionTransferable`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner_ui_callback._internal_.md#measurementlinedimensiontransferable)\[] |

#### Returns

`void`

***

### onUpdateObjectMeasurements

▸ **onUpdateObjectMeasurements**(`objectMeasurements`): `void`

This function gets called when the camera has stopped moving,\
allowing for the calculation of the dimensions of plan element position.\
It is also called when the element is selected or dragged on the plan.

#### Parameters

| Name                 | Type                                                                                                                                                                            | Description                                                                   |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| `objectMeasurements` | [`ObjectMeasurementsTransferable`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.objectmeasurementstransferable.md) | The measurements of plan element related to the walls plus object dimensions. |

#### Returns

`void`

***

### onUpdatePlanObjectPositions

▸ **onUpdatePlanObjectPositions**(`planObjectPositions`): `void`

This function gets called when the camera is no longer moving\
it delivers all the positions of items in the plan normalized to the screen coordinates

#### Parameters

| Name                  | Type                                                                                                                                                       |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `planObjectPositions` | [`PlanObjectPosition`](/rubens/rubens-sdk/rubens-sdk-reference/interfaces/planner_core_src_roomle_planner_ui_callback._internal_.planobjectposition.md)\[] |

#### Returns

`void`

***

### onUpdateWallDimensions

▸ **onUpdateWallDimensions**(`wallDimensions`): `void`

This function gets called when the camera is no longer moving\
and the position of the wall dimensions can be calculated

#### Parameters

| Name             | Type                                                                                                                                                                  |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `wallDimensions` | [`WallDimensionTransferable`](/rubens/rubens-sdk/rubens-sdk-reference/modules/planner_core_src_roomle_planner_ui_callback._internal_.md#walldimensiontransferable)\[] |

#### Returns

`void`

***

### unmute

▸ **unmute**(): `void`

#### Returns

`void`

#### Inherited from

[UiCallback](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md).[unmute](/rubens/rubens-sdk/rubens-sdk-reference/classes/configurator_core_src_configurator._internal_.uicallback.md#unmute)


---

# 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_ui_callback.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.
