Skip to main content

Positioning

The plugin automatically aligns the 3D models of a Komponenten-Liste in a row: kitchen units, rows of cabinets, shelving units, fence panels, counters. You simply specify the dimensions for each module—the plugin calculates the position, rotation, and corners.

Without the plugin, you would have to manually calculate the coordinates and angle of each module in every rule line. As soon as the customer inserts, deletes, or rearranges a module, these calculations are no longer accurate.

The Principle: The Thread​

The plugin places an invisible “thread” through the scene and places the modules in sequence along it. For each module, the thread follows these steps:

  1. Place the module at the current point in the current direction of travel,
  2. move forward by width,
  3. rotate by angle,
  4. move forward by width (rotated).

Where the thread ends, the next module begins. A straight module requires only step 2, while a corner module requires all four.

The row runs in the x-direction; a positive angle rotates clockwise (as viewed from above). Calculations are made in meters and exclusively within the base area—the height is derived from the model itself.

Prerequisites​

  • The plugin is in Ihrem Konfigurator eingetragen.
  • You have created a Komponenten-Liste in which the customer adds their modules (e.g., “kitchen unit” with base cabinet, corner cabinet, tall cabinet).
  • There is a 3D model for each module type.
  • Developer mode is enabled in your Profil—you need it to view the Key field in properties. Without a key, the plugin cannot read dimensions.

Setup​

1. Create a "Positioning" model​

  • Click on
    Loading...
    in the sidebar, then on
    Loading...
    .
  • Select Positioning and click the "+" button.
  • Give the model a name, e.g., “Kitchen Island Layout.”

The model includes three slots: Input Before, Input, and Input After.

2. Place the model in the scene​

Place it in the scene using a rule, just like any other model. In most cases, a rule without a condition—which always displays the layout—is sufficient.

  • In the rule behind the model, click on
    Loading...
    .
  • Under Module List, select the component list containing your modules.

Without this binding, all dimensions will remain at 0, and all modules will end up stacked on top of each other at the origin.

4. Create Dimension Features in the Component​

Within the component list, create three numeric features and assign each one a Key:

KeyMeaning
breiteDistance before the bend, in meters
winkelRotation of the direction of travel at the end of the module, in degrees
breite_gedrehtDistance after the bend, in meters

The attributes berechnet may be hidden—the customer does not need to see them. It is common to perform a calculation based on a Wert-Eigenschaft of the module type, such as Breitenwahl / 1000, when the customer enters millimeters.

warning

A feature without a key cannot be found—this is the most common setup error.

5. Place Module Models in the Slot​

The rule that displays a 3D model for each module has been drawing the models directly into the scene. Reroute them to the layout:

  • In this rule, click the pencil icon in the header of the Model column.
  • Under Slot Assignment, select the entry Positioning > Input (or the name you gave your layout model).

From now on, the models will no longer be drawn directly but will be placed by the layout.

6. Check the Models’ Anchors​

The plugin places each module with its origin at the calculated point on the thread. Where the visible model is positioned relative to this point is determined by Anker des Modells.

Convention: back-bottom-right—that is, exactly where the module connects to the previous one and stands on the floor. This ensures that the modules automatically stand on the floor and fit together seamlessly .

Straight Modules and Corner Modules​

Straight Modules: Set only breite; winkel and breite_gedreht remain 0.

Corner modules:

  • breite = Length of the incoming side up to the bend
  • winkel = Rotation angle in degrees; positive = clockwise from the top (usually 90)
  • breite_gedreht = Length of the outgoing leg, often the cabinet depth

A corner module reverses the direction of flow for all subsequent modules. Two corner modules, each at 90°, result in a U-shape; four result in a closed rectangle. Odd angles are allowed (e.g., 45 for a diagonal corner); negative values rotate counterclockwise.

Example: Kitchen unit with a corner​

#Typebreitewinkelbreite_gedreht
1Base cabinet0.6000
2Base cabinet1.2000
390° corner cabinet0.90900.60
4Base cabinet0.8000

Module 1 starts at the origin, Module 2 at 0.60 m, Module 3 at 1.80 m. The line extends to 2.70 m, turns 90° there, and continues 0.60 m forward—where Module 4 is located, perpendicular to the first row. If the customer adds another cabinet before Module 3, the corner automatically shifts accordingly.

Troubleshooting​

ObservationCause
All modules are stacked on top of each otherModule list not bound, or the dimension features have no key
Individual modules are stacked on top of each otherFor this module type, breite is missing or the key is incorrect
Modules are offset from their positionsAnchor of the GLB models does not match
The corner rotates in the wrong directionSwap the sign for winkel
Detailed Version

There is more detailed documentation available for this plugin, including debug output, multiple models per module, and special cases at the beginning and end of the series. If needed, please inquire at support@objectcode.de.