Hello everyone,
I am currently developing a custom PythonPart in Allplan 2026 to generate precast reinforced concrete beams with parametric geometry and reinforcement.
The element has a U-shaped cross-section, consisting of three concrete sections that need to be represented as three native Precast layers within a single precast element.
1. Geometry Description
The cross-section consists of the following parts:

Red Face – Left Side Wall
•Represents one of the vertical walls of the U-shaped section.
•Its thickness is independent and configurable through the PythonPart parameter palette.
•Its height can also be adjusted using a parameter that controls the reduction at the top.
•Material: Concrete with a compressive strength of f'c = 280 kg/cm².

Purple Face – Bottom Base
•Represents the horizontal base connecting both side walls.
•Its vertical thickness is configurable.
•Its width corresponds to the central space between the red and blue faces.
•Material: Concrete with a compressive strength of f'c = 280 kg/cm².

Blue Face – Right Side Wall
•Represents the vertical wall opposite the red face.
•It has its own independently configurable thickness.
•Its height can also be adjusted independently.
•Material: Concrete with a compressive strength of f'c = 280 kg/cm².

These three sections form a single U-shaped cross-section. Therefore, we do not want to generate three separate precast elements, but rather one PrecastElement containing three PrecastLayer objects.

2. API Configuration
We are currently using the following classes:
•PrecastElementProperties
•PrecastLayerProperties
•PrecastElement
•PrecastLayer

The three layers are arranged transversely, from the blue side to the red side:

1.Blue Face: Right wall thickness.
2.Purple Face: Central width between the two walls.
3.Red Face: Left wall thickness.

For each layer, we set CalculateLayerThickness = False and manually assign the LayerThickness value.
It is important to clarify that the native Precast layer thickness represents the transverse dimension of each section, not necessarily its vertical height.

3. Issue Encountered

The initial creation of the PythonPart works correctly. However, the issue occurs when modifying its dimensions, particularly when reducing the overall width of the cross-section, which consequently reduces the thickness of one or more Precast layers.
During this modification, an issue occurs in the internal update process of the precast element, involving:
UpdateKoFeAccordingToPythonPart

We have also encountered the following message:

PrecastElementType 3000 hat noch keine Konfiguration

Our element uses ElementType = 3000, associated with a custom precast element type named "Previgas".

We have tried rebuilding the element to avoid directly updating the existing MacroPlacement, but we would like to understand the officially recommended approach.
What is the recommended procedure for keeping the PythonPart geometry and the three native Precast layers synchronized, without having to delete and recreate the element every time it is modified?

Our goal is to develop a fully parametric precast beam whose U-shaped cross-section, materials, and Precast layers update correctly when modifying dimensions through the PythonPart parameter palette.

Thank you in advance for any guidance, suggestions, or implementation examples related to Allplan 2026.

Anhänge (3)

Typ: image/png
6-mal heruntergeladen
Größe: 34,78 KiB
Typ: image/png
4-mal heruntergeladen
Größe: 16,40 KiB
Typ: image/png
10-mal heruntergeladen
Größe: 1,04 MiB