Release Notes
WIP-5
-
Allep packaging solution for delivering plugins for ALLPLAN has undergone breaking changes. Refer to this article, as it has been completely refactored. Here are just the most important changes:
- New content types: it is now possible to deliver design assets (e.g.
.surf
files), report templates or VisualScripting nodes - Leaner folder structure: No additional directories (like
AllepPlugins/DeeloperName/PluginName
) are created during the installation. You, as a developer, decide how the structure look like. Thus, installer does not modify your PYP file anymore. - Simple
install-config.yml
: if you want to install assets instd\Library
on end-user's PC, simply include the folderLibrary
in the Allep package. The same applies to all other folders, for which the installation is supported.
- New content types: it is now possible to deliver design assets (e.g.
-
We introducing Plugin Hub - an easy way to deliver your plugin to all ALLPLAN users around the world. Learn more in this article.
-
The classes
DimensionLineElement
andElevationElement
representingDimension line and
Elevation point respectively have been refactored and now offer all the properties of these native ALLPLAN elements.
-
Furthermore, it is also now possible to modify specific properties of
Dimension line and
Elevation point
-
The methods of
ElementsAttributeService
for modifying attributes has been extended so that it is now possible to delete an attribute of an existing model element or set its value to<undefined>
. Learn more here -
The class representing a UVS,
ViewSectionElement
, and all the property classes it composes have been refactored so that it is now possible to access all the properties of a UVS with Python API.
WIP-4
-
The python version delivered with ALLPLAN has been upgraded to 3.13.2
-
With the introduction of dark mode in ALLPLAN you may want to optimize the look of your icons and pictures. Now you can do that. Just simply every time you provide an icon/picture for the value types
PictureResourceButtonList
,PictureResourceButton
,PictureComboBox
orPicture
, provide a second image with the suffix_dark
. This image will then be used only in the dark model. -
For further optimization related to the dark mode, you can get the current mode (light or dark) using newly exposed function
is_dark_mode()
-
A PythonPart can now terminate itself and start another PythonPart. Learn more here.
-
The picture in the palette can now be changed dynamically by changing the value of the picture parameter. Learn more here.
-
The PYP files are now documented in an XML schema document (XSD) hosted with this documentation (here). Here you can learn more on how to use it.
-
With the new methods of ReinforcementSettings it is now possible to:
- Access the cross-section catalogs (learn more here)
- Get the setting Factor for diameter using (see GetBarFactorForDiameter)
- Get the setting Placement limit for excess mesh (see GetMeshCutOffPlacementLimit)
- Get the list of available concrete grades for a given norm ID (see GetConcreteGradesForNorm)
-
Article about hierarchy of model elements was extended and a new example ShowHierarchy ( PYP | PY) is available for you to explore it.
-
The new
FaceSelectInteractor
class facilitates the implementation of a polyhedron face selection in a script object. Learn more here -
Your implementation of the method
move_handle()
in the script object should not returnCreateElementResult
object -
Bug fixes:
- It is now possible to assign an attribute to an existing slab opening using
ElementsAttributeService
- It is now possible to assign an attribute to an existing slab opening using
WIP-3
-
Introduced modification events which allows you to implement a special behavior of your PythonPart every time it is being modified using native ALLPLAN function (moved, copied, change of attributes, etc...)
-
You can now place nested expanders on the property palette. Up to three levels are possible.
-
With the newly exposed class
SlabFoundationElement
it is now possible to create and modify slab foundation using Python API. -
It is now possible to get the Python object representing an existing flush pier (
FlushPierElement
) and joint (JointElement
). Learn more about accessing existing objects in general in this article -
Members of PythonPart group now preserve their labels and attributes added using native ALLPLAN functions after modifying the group. For this to happen, the implementation must include additional steps. Read more in the adapted article about PythonPart groups.
-
PythonParts included in a PythonPart group can now be shown in the information palette
-
The creation of handles is now easier with the helper class
HandleCreator
. You can allow the user to add/remove a point from a list with handles. Learn more in this article. -
Bug fixes:
-
A PythonPart with a plane references parameter was causing ALLPLAN to crash each time a drawing file containing this PythonPart was opened after any changes done to the plane model. This has been fixed.
-
A PythonPart with a plane references parameter kept forgetting the plane, the parameter was referring to, when the plane was not the default plane of the drawing file. This has been fixed.
-
Handles connected to parameters, that are initially hidden in the palette, now behave correctly.
-
When a date attribute linked to a PythonPart parameter is modified using native ALLPLAN function (e.g. Modify Attributes), the PythonPart can now be modified by double-click and no exception appears.
-
Modifying s PythonPart, whose attribute was set to
<undefined>
using ALLPLAN native function Modify attributes, could result in the PythonPart being impossible to modify. This has been fixed.
-
WIP-2
-
An element modification can now be done on following objects:
Element Representation in API Block foundation BlockFoundationElement
Polygonal niche/recess GeneralOpeningElement
Room RoomElement
-
Improvements to ALLPLAN Extension Packages (Allep):
- Plugin can now be updated by simple drag-and-drop of the new .allep file into ALLPLAN
- A progress bar is shown during the installation/update/uninstallation
-
Refactored class 'SectionFill' facilitates assigning surface properties to 3D objects. Learn more here.
- Extensive description on how to implement handles in an interactor PythonPart has been created. You can access it here.
- When an installation of an Allep package failed because the package was invalid, now a meaningful message is shown to help you understand, what needs to be fixed.
- Bug fix: Initializing a parameter of type
RefPointButton
as a list does not result in an error anymore.
WIP-1
- ALLPLAN Extension Packages (Allep) can now be uninstalled by the user with
the Allep Uninstaller located in
Library -> Default -> AllepPlugins -> AllplanGmbH -> AllepManagement AllepUninstaller -
It is now possible to modify new kinds of architectural elements using Python API. How this element modification should be implemented, is shown in this article. The table below shows the new element types, that can be modified:
Element Representation in API Beam BeamElement
Column ColumnElement
Door opening DoorOpeningElement
Niche/recess GeneralOpeningElement
Wall WallElement
Window opening WindowOpeningElement
-
Strip foundation and block foundation can now be created using Python API. Refer to the documentation of the
StripFoundationElement
andBlockFoundationElement
class. -
It is now possible to create rebar labels through the API also for those rebars, that already exist in the model (e.g. were created using native functionality). Refer to the documentation of the new
BarsRepresentation
class and to the example LabelBarPlacementWithDimLine ( PYP | PY). Detailed manual will follow soon. -
It is now possible to dock your PythonPart to an existing docking point. Learn more in this article.
-
New value type
SurfaceElementProperties
allows you to place a control for setting up hatching/filling/patterns of architectural components. Learn more here and here. -
It is now possible to use associative framework to get the element associated with given element. This simplifies the process of associating a PythonPart with another element, which is described in detail in this article
-
It is now possible to create a beam with an assigned profile using the newly exposed property property
BeamProperties.ProfileFullName
-
With the new method
GetNorms
it is now possible to get the IDs and names of available reinforcement norms. -
Extended description of how to read data from reinforcement elements is now available here.
-
Bug fixes:
- Assigning a profile to a column using the
ColumnProperties.ProfileFullName
was causing an error. - Creating a
SweepBarPlacement
orExtrudeBarPlacement
with a straight bar in the list of cross rebars was causing a crash. - Creating a niche/recess in an entity-based wall (a wall, in which the axis is different than a line, e.g. a spline or arc) using API call was causing a crash.
- Assigning a profile to a column using the