Skip to main content
Skip table of contents

Unit Volume Actor

The Unit Volume Actor is one of the most important components within the plugin. It visually and functionally represents a property unit, allowing to display data, make selections and apply filters according to the properties of the units.


Unique identifiers and by promotion

To link the actor's data with the information from a database, identifiers are used, which can be global o premises to the promotion. These identifiers can be assigned manually or through the developer panel, loading them directly into the selected actor.

Property

Description

UnitVolumeID

Identifier local to the promotion, used to access the information of a specific unit.

UnitVolumeKeycode

IdealTwin global identifier, used to obtain information about the units in a broader context.

It is possible to have one identifier or the other in the Unit, as the search will check both values. If no match is found, the volume will become unusable.


Volume display

The visual representation of the volumes makes it possible to identify the location of the units in the 3D structure, also providing a visual reference of the availability status of the units. To facilitate recognition, color changes are used to reflect the status of each unit.

image-20241209-172017.png

Visual configuration

It is possible to customize the visual representation of the units using a configuration asset. This asset is used when assigning the materials and determining how the material will be used, for example, when the UnitVolume is selected from the manager or to change its color according to availability.

Materials and colors can be modified in the configuration assets, as long as the specified variables are referenced in the code.

  • To create a configuration asset, you must create a new DataAsset using the class UnitVolumeConfig. In order to be able to set it individually in the UnitVolumeActor or put it globally in the settings.


Selection of units at the level

Visual representation includes the ability to select units individually. From this selection, you can manage data or perform different actions with the collected information.

This functionality is managed by the UnitVolumeManagerwhich centralizes the selection logic so that multiple panels or actors can access this information and execute new actions.

In addition, you can call directly to the implementation that makes a linetrace that looks for collisions with the UnitVolume or get it using the cursor.

image-20241209-175007.png

TraceChannel configuration

In the project, a TraceChannel exclusive for the detection of the volumes. This allows the rays (traces) to interact only with the elements associated with the volumes. UnitVolumesThe channel can be configured to avoid interference with other objects in the scene. In case a different configuration is required, the channel can be customized to allow specific interactions.

image-20241209-173022.png

Filtering of units

Units can be displayed or hidden on the map according to the rules defined in the filters. The UnitVolumeManager includes a FilterManagerwhich is responsible for registering the filters and updating the visibility of the units according to the filtering results.

These functionalities are usually used for the UI part of the panel and to make changes to the values. However, filters can also be configured externally and left fixed.

image-20241209-191347.png

Although this is one way to add the filters, it is preferable to do it from the user interface using the specific class, so that these values are automatically managed by dynamic components.


Assignment of interior maps

As an additional functionality, an option has been integrated to make transitions between levels using the variable LinkerMap. This allows a transition from an exterior environment to an interior map, commonly used to represent spaces such as model homes. This transition is configured directly in each UnitVolume.

image-20241209-173433.png

This functionality is integrated inside the panels to make transitions between maps. If you want to use it for other implementations just get the variable and load the map in the traditional way.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.