Skip to main content

Changelog

All notable changes to the viktor SDK will be documented in this file, categorized by version number.

The changes can be categorized further in the following headers:

  • Action Required: when a backwards incompatible change is made, which requires actions in the application code. You will find a reference to the upgrade instructions in this change. This header will only be present in major releases or on Beta Features.
  • Added: when a functionality is added, without breaking compatibility with older versions.
  • Deprecated: when an existing functionality will be removed in upcoming releases. You will find a reference to the upgrade instructions in this change.
  • Docs: when the change involves SDK documentation, docstring, and/or type hinting.
  • Fixed: when the change fixes a bug/error.
  • Security: when a vulnerability is fixed.

Each change consists of a tag to annotate which VIKTOR module is involved. If the change encompasses multiple modules, the viktor tag is used.

v14


v14.11.0 - 18/06/2024

Added

  • api_v1 Added retries in relevant API calls
  • parametrization Added support for disabling a Step

v14.10.1 - 17/06/2024

Fixed

  • viktor Mark numpy v2 as incompatible with viktor

v14.10.0 - 15/05/2024

Added

  • parametrization Added GeometrySelectField and GeometryMultiSelectField
  • geometry Added identifier to geometrical objects

Fixed

  • viktor Fix command to also function for app.py

v14.9.0 - 04/04/2024

Added

  • api_v1 Added API().get_workspace and API().get_workspaces
  • api_v1 Support to use the API module from outside of a VIKTOR app

v14.8.0 - 28/02/2024

Added

  • parametrization Define dynamic option lists per dynamic array row
  • views GeometryView x_axis_to_right setting to set the initial x-axis orientation
  • external GrasshopperAnalysis

Deprecated

  • views GeometryView initial x-axis orientation will be to the right by default (#U90)

Fixed

  • parametrization Fix incorrect or failing serialization when using non-native objects (e.g. Color, GeoPoint, etc.) in DynamicArray default

v14.7.1 - 06/02/2024

Added

  • parametrization Added workspace_id in signature of controller methods and callback functions

v14.7.0 - 10/01/2024

Added

  • viktor Support for Python 3.12
  • parametrization Support for (dynamic) visibility on Page, Tab, and Section
  • parametrization Support to specify width on a Page and Step to adjust the width-ratio between input and output of an editor
  • external SCIA binding: general cross-sections (polygon + openings only)

Deprecated

  • parametrization Removed always_available from buttons (#U88)
  • viktor Support for Python 3.8 will be removed (#U89)

Fixed

  • viktor Upgrade vendored trimesh to resolve numpy deprecation

v14.6.1 - 16/10/2023

Added

  • views Added the possibility to use a FileResource as input for the IFCResult and IFCAndDAtaResult

Fixed

  • external Dynamo convert_geometry_to_glb crashes due to incorrect parsing of line strips

v14.6.0 - 03/10/2023

Added

  • external IDEA binding: added support to set name of design member
  • external IDEA binding: added support to set description of extreme
  • external IDEA binding: added support to set project data properties
  • views IFCView and IFCAndDataView

Fixed

  • geo Fixed error caused by deprecated matplotlib style 'seaborn-whitegrid'
  • viktor Removed upper bounds of VIKTOR dependencies ('pandas' and 'munch')

v14.5.0 - 05/09/2023

Added

  • geometry Metalness and roughness of default Material updated to 0.5 and 1.0 respectively
  • geometry Material properties can now be set on the instance (e.g. mat.opacity = 0.3)
  • views Support marker size of a MapPoint by specifying the size argument

Deprecated

  • geometry Threejs properties renamed / removed from Material (#U87)

v14.4.0 - 25/07/2023

Added

  • views Add geometry_type to GeometryResult and GeometryAndDataResult to support alternative geometry file formats (e.g. 3DM)

v14.3.0 - 11/07/2023

Added

  • external SCIA binding: create averaging strips (POINT type only)
  • parametrization Image field that can be used to display a static image

v14.2.1 - 15/06/2023

Fixed

  • api_v1 Regression in len(entity.revisions()) causing an error

v14.2.0 - 13/06/2023

Added

  • parametrization ChildEntityManager field that can be used to manage child entities

v14.1.0 - 23/05/2023

Added

  • external SCIA binding: create selections

v14.0.0 - 12/04/2023

Action Required

  • viktor Upgrade instructions U76 - U86 have been applied

Added

  • parametrization ColorField which allow users to select from a color palette
  • core Non-breaking user messages using UserMessage
  • testing Allow for Parametrization class in mock_params

Docs

  • testing Simplified MockedEntity example

Fixed

  • viktor Fixed matplotlib dependency range set too strict

v13

v13.8.0 - 16/02/2023

Added

  • viktor Support for Python 3.11

v13.7.2 - 08/02/2023

Docs

  • views Added info about "id" attribute for interaction to docstring of GeoJSONResult
  • result Fixed example in OptimizationResult docstring

Fixed

  • external Dynamo convert_geometry_to_glb now correctly implements transparency
  • geometry Fixed rotation bug in Cone geometry when oriented in (0, -1, 0) direction

v13.7.1 - 16/01/2023

Fixed

  • errors Fixed UserError to accept multiple messages of any type, in line with UserException

v13.7.0 - 16/12/2022

Added

  • result Support 'Munch' type in a SetParamsResult
  • views New ImageView and ImageAndDataView that accept 'svg', 'jpeg', 'png', 'gif' files
  • parametrization Validation of a Step using the on_next callback function
  • errors UserError to show an error to the user and mark fields invalid in the interface
  • core Show/hide top-level entities on the dashboard with InitialEntity show_on_dashboard argument

Deprecated

  • views SVGView, JPGView, PNGView are replaced by ImageView (#U82)
  • views SVGResult, JPGResult, PNGResult are replaced by ImageResult (#U82)
  • views SVGAndDataView, JPGAndDataView, PNGAndDataView are replaced by ImageAndDataView (#U82)
  • views SVGAndDataResult, JPGAndDataResult, PNGAndDataResult are replaced by ImageAndDataResult (#U82)
  • parametrization Violated field constraints will block actions (#U83)
  • viktor UserException will be replaced by UserError (#U84)

v13.6.2 - 05/12/2022

Fixed

  • geometry Regression in CircularExtrusion causing incorrect positioning

v13.6.1 - 17/11/2022

Fixed

  • views Regression in SVGAndDataResult causing StringIO image to crash with UnicodeEncodeError in certain cases (e.g. matplotlib)

v13.6.0 - 7/11/2022

Added

  • viktor Show progress messages in terminal
  • geometry Specify shell_thickness on a CircularExtrusion to create a hollow extrusion

Deprecated

  • geometry Remove open_ends from CircularExtrusion (#U81)

Fixed

  • codemod Fixed codemods failing on f-string with unparenthesized tuples
  • viktor Ignore errors in sending progress messages
  • views Regression in SVGResult causing StringIO image to crash with UnicodeEncodeError in certain cases (e.g. matplotlib)

v13.5.1 - 18/10/2022

Fixed

  • external Dynamo convert_geometry_to_glb fix colors

v13.5.0 - 11/10/2022

Added

  • external Added repr function to spreadsheet input classes
  • external Various analysis classes and functions now accept a File object, or return a File object if as_file=True
  • views All image results (PNGResult, etc...) allow for image of type File
  • geo gef_visualization returns File object if as_file=True
  • views WebResult allows for html of type File and str
  • geometry Support visualization of Arc, Line, and Polyline in a GeometryView
  • testing Various mock_*Analysis classes to facilitate easier testing of analysis classes

Deprecated

  • geometry Remove hex_to_rgb and rgb_to_hex from geometry module (#U79)
  • parametrization Remove min_message and max_message from NumberField/IntegerField (#U80)

v13.4.0 - 12/09/2022

Added

  • external Upload inputs of render_word_file and WordFileTemplate.render to s3 to prevent payload errors
  • external Added torsion and interaction results to RcsOutputFileParser

Fixed

  • codemod U77 incorrectly includes yaml-comments in welcome_text
  • external Dynamo convert_geometry_to_glb now generates double-sided faces
  • codemod U78 unintentionally removes comments from viktor.config.toml

v13.3.1 - 24/08/2022

Fixed

  • api_v1 Incorrectly setting last_saved_params equal to None for old entity revisions
  • external Fix type-error in fill-spreadsheet helper
  • geometry get_lowest_or_highest_profile_x sometimes returns the incorrect profile
  • parametrization Raise a warning when using an OptionField with an int value in a Table

v13.3.0 - 10/08/2022

Added

  • parametrization Increased character limit on Text element from 500 to 1800
  • testing mock_API decorator to mock the API class in tests
  • testing mock_params function to convert a JSON/dict to the (deserialized) params
  • testing mock_View decorator to mock View decorators in tests
  • testing mock_SciaAnalysis to mock SciaAnalysis.execute and analysis returns in tests
  • api_v1 Compare EntityTypes or Users with "=="
  • geometry Compare GeoPoints, GeoPolylines, or GeoPolygons with "=="

Deprecated

  • viktor app_type entry should be defined in viktor.config.toml (#U78)

v13.2.1 - 27/06/2022

Fixed

  • codemod U77 incorrectly fixing the welcome_text path

v13.2.0 - 15/06/2022

Added

  • geometry Construct an extruded polygon using Polygon.extrude()
  • geometry Compare Points and Lines with "==" (e.g. Point(1, 1) == Point(1, 1) -> True)
  • geometry Allow for indexing/iterating of Vector, Point and Line objects
  • geometry Line methods project_point and distance_to_point
  • codemod Apply all fixes of current major when using the viktor-cli fix command without --upgrade flag
  • parametrization Select interaction on Map/GeoJSONView

Deprecated

  • viktor Removal of manifest (#U77)

Fixed

  • geometry bug in points_are_coplanar
  • geometry point_is_on_bounded_line now correctly calculates for 3D

v13.1.0 - 06/05/2022

Added

  • external SCIA binding: description on (nonlinear) load combination
  • external SCIA binding: (general) solver settings
  • external SCIA binding: library cross-sections
  • external SCIA binding: basic project data
  • external SCIA binding: cross-links

Fixed

  • viktor Set timeouts on addons requests to 60 seconds to prevent timeout errors
  • external SCIA binding: applying a line load on a circular plane edge no longer raises an error

v13.0.0 - 13/04/2022

Action Required

  • viktor Upgrade instructions U61 - U75 have been applied

Added

  • core Storage class to permanently store files which can be retrieved at any time
  • parametrization FileField and MultiFileField which allow users to upload one or multiple files
  • parametrization EntityOptionField and EntityMultiSelectField for generic selection of entities
  • parametrization ViktorParametrization as alias of Parametrization

Deprecated

  • codemod Cleanup previously set flags which were necessary to migrate to v13 (#U76)

v12

v12.12.2 - 23/08/2022

Fixed

  • api_v1 Incorrectly setting last_saved_params equal to None for old entity revisions

v12.12.1 - 11/04/2022

Docs

  • external Fixed example in Dynamo docstring

Fixed

  • parametrization Fixed U74 warning not being logged in case of dynamic options

v12.12.0 - 06/04/2022

Added

  • views up_axis setting to GeometryView and GeometryAndDataView
  • views GeometryResult accepts a GLB File
  • views Fix the font size of a MapLabel regardless of zoom level by setting the fixed_size flag
  • external Helper functions for updating Dynamo input files and processing output files (results + geometry)
  • external GenericAnalysis.get_output_file returns File object if as_file=True
  • parametrization Support setting a value and a label of an OptionField option within a table
  • parametrization Added entity_name in signature of controller methods and callback functions

Deprecated

  • views GeometryResult argument visualization_group renamed to geometry (#U73)
  • parametrization Setting both a value and a label of an OptionField option within a table will no longer be ignored (#U74)
  • viktor Removed name and filename from the params (#U75)

Fixed

  • codemod U68 fixed for the case of having multiple 'import as' aliases
  • geometry Torus and ArcRevolve showing wrong face normals and ignoring rotation angle

v12.11.0 - 09/03/2022

Added

  • viktor Create a views-only entity type by omitting the parametrization attribute on the corresponding Controller class
  • views Select a custom map marker using the icon attribute on MapPoint

Deprecated

  • viktor The background_image of a workspace is customizable through the admin panel instead of the manifest (#U71)
  • api The complete viktor.api module and all of its classes and functions (#U72)

Docs

  • views Fixed example in PlotlyView docstring

v12.10.0 - 08/02/2022

Added

  • views PlotlyView and PlotlyAndDataView
  • api_v1 Various missing functionalities (e.g. to create, delete and modify entities)
  • views GeometryResult accepts a (sequence of) TransformableObject(s)
  • testing mock_ParamsFromFile to mock the ParamsFromFile class in tests

Deprecated

  • parametrization Automatic selection of a single option in an OptionField will no longer be the standard behavior (#U69)
  • geometry Removed method Polyline.from_dict (#U70)

Fixed

  • external D-Foundations parser: IsKsi3Used incorrectly returns True

v12.9.0 - 11/01/2022

Added

  • parametrization Step which can be used to have pages within a predefined order, browsable through a previous and next button
  • parametrization row_label attribute on DynamicArray which can be used to prefix the row index

Deprecated

  • viktor GEOLIB is now publicly available; hosting by VIKTOR will be terminated (#U67)
  • parametrization Input argument require_all_fields will be removed from buttons (#U68)

v12.8.0 - 1/12/2021

Added

  • external Removed [BETA] status from the Robot integration
  • parametrization Radio variant of OptionField (vertical + horizontal)

Deprecated

  • parametrization Entity selection fields return an Entity object in the params instead of an integer (#U65)
  • parametrization NumberField variant attribute of type str ('slider') replaces type Enum (NumberField.Variant.SLIDER) (#U66)

Fixed

  • external D-Foundations and D-Settlement input file generation timeout increased to 30 seconds

v12.7.0 - 3/11/2021

Added

  • views An update_label can be used to change the label of the update button of a View
  • parametrization A description can now be added on action buttons, to provide more information to the user through a tooltip
  • external IDEA-RCS RcsOutputFileParser: decision method added to fatigue results
  • external IDEA-RCS RcsOutputFileParser: obtain combined results per extreme using section.extremes()
  • external IDEA binding: Member.create_bar_layer() and ReinforcedCrossSection.create_bar_layer() to create multiple bars positioned on a line
  • external IDEA binding: theta, theta_min, theta_max, and n_cycles_fatigue can be set in the CodeSettings
  • external IDEA binding: relative_humidity can be set in the design member data
  • external IDEA binding: a general cross-section can be added to a model, defined by a set of coordinates
  • parametrization Text field that can be used to display a static text

Docs

  • parametrization Parameter NumberField.step added to docstring
  • parametrization Fixed example in ParamsFromFile docstring

Fixed

  • external Scia input file generation timeout increased to 30 seconds

v12.6.0 - 29/09/2021

Action Required

  • external [BETA] Robot binding: requested_results format has changed; specify per category which components are to be returned

Added

  • external SCIA binding: Model.create_numerical_cross_section
  • external SCIA binding: Model.create_point_load_node
  • external SCIA binding: added angle argument to Model.create_point_load
  • core Controller attribute summary is no longer required to be defined
  • core Controller attributes (label, summary, parametrization, etc.) visible in stubs and docs

Deprecated

  • api_v1 PrivilegedAPI has been replaced by explicit privileged flag on the individual API calls (#U64)

Docs

  • geometry Fixed code-block in RDWGSConverter.from_wgs_to_rd()
  • viktor Link to upgrade instruction webpage in deprecation warnings

Fixed

  • external Word file rendering timeout increased to 60 seconds
  • parametrization Naming a table column 'name' does no longer cause a warning in the IDE about not being able to set the 'name' property

v12.5.0 - 24/08/2021

Added

  • parametrization Page which can be used to construct a combination of inputs (e.g. tabs / sections) and outputs (views)
  • core Improved upload performance when no data is returned during post processing
  • api_v1 Multiple API requests within the same job are now faster due to session sharing
  • core Improved error messages when a Summary is wrongly defined (e.g. non-existing SummaryItem 'source')
  • geo SoilLayout.filter_layers_on_thickness merges adjacent layers with equal property values of type 'str', and raises a more explicit error otherwise
  • external IDEA-RCS RcsOutputFileParser which is an improved version of OutputFileParser (allowing large files)
  • geometry Improved performance of TriangleAssembly and Polygon visualization. Additionally a skip_duplicate_vertices_check flag can be set to boost performance further.
  • parametrization The width-ratio between input and output of an editor can be adjusted through a width argument on Parametrization
  • parametrization A description can now be added on a Field / Tab / Section / Page, to provide more information to the user through a tooltip
  • views A description can now be added on a View, to provide more information to the user through a tooltip

Deprecated

  • geo Renamed SoilLayout2D.threejs_visualisation() to SoilLayout2D.visualize_geometry() and SoilLayer2D.threejs_visualisation() to SoilLayer2D.visualize_geometry() (#U62)
  • parametrization Input arguments prefix and suffix on a DateField will be removed (#U63)

Docs

  • viktor Regular docs maintenance

Fixed

  • geometry Small triangles return NaN when calling the area

v12.4.0 - 14/07/2021

Added

  • external SCIA binding: NonLinearLoadCombination can be used in Model.create_result_class()

Docs

  • viktor Added description of publish commands to cli guide

Fixed

  • external Timeout issue when using large files in render_spreadsheet() and SpreadsheetCalculation.evaluate()

v12.3.1 - 25/06/2021

Fixed

  • parametrization Issue where clicking "Add new row" on a Table does not work

v12.3.0 - 25/06/2021

Added

  • external IDEA-RCS binding: fatigue loading can be applied on an extreme
  • external IDEA-RCS OutputFileParser: fatigue results can be parsed
  • views 'points' and 'holes' properties added on MapPolygon
  • external Log when external analysis job has been completed successfully
  • parametrization Simple options can be used in OptionField, AutocompleteField, MultiSelectField (e.g. options=['A', 'B', 'C'])

Deprecated

  • core Entity-type information (label, children, and show_children_as) is moved from the manifest to the Controller (#U61)

Fixed

  • utils Memoized functions called on app-load breaks in production

v12.2.0 - 26/05/2021

Added

  • parametrization GeoPointField, GeoPolylineField, and GeoPolygonField can now be used in a DynamicArray
  • external [BETA] RobotAnalysis

Docs

  • viktor Regular docs maintenance

v12.1.0 - 18/05/2021

Added

  • parametrization Parametrization can consist of 1 layer (Field) or 2 layers (Tab + Field, Section + Field)
  • external Improved error handling in execution of RFEMAnalysis
  • geometry Cone object
  • api_v1 Allow negative indexing on EntityList
  • parametrization More consistent naming for many fields (old names will be deprecated in future)
  • result Allow for multiple files to be downloaded (as zip-file) in DownloadResult

Docs

  • viktor Regular docs maintenance

Fixed

  • parametrization Setting field name argument using dot-notation within TableInput/DynamicArray was mistakenly allowed

v12.0.0 - 20/04/2021