Skip to main content
Version: 14

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.15.2 - 04/09/2024

Fixed

  • views Fixed TableView from pandas Styler object crashing on unsupported format
  • viktor Requests now use the user's system certificates to solve SSL cert verification errors

v14.15.1 - 26/08/2024

Fixed

  • viktor Lazy import of the external modules which fixes a potential ImportError and improves import speed
  • views Lazy import of pandas to improve import speed of the views module

v14.15.0 - 22/08/2024

Added

  • viktor Support for single import (e.g. import viktor as vkt; vkt.NumberField(...))
  • core Make 'label' on ViktorController optional
  • views Make 'duration_guess' on all Views optional

Fixed

  • views Fix bug with using TableView with pandas showing data incorrectly in certain cases
  • views Fix small typo in SummaryItem suffix docstring
  • external Fix error mapping for spreadsheet calculation (SpreadsheetCalculation) so more error information is shown
  • external Fix error mapping for spreadsheet renderer (SpreadsheetTemplate / render_spreadsheet) so more error information is shown
  • core External services (e.g. convert_word_to_pdf, render_jinja_template, etc.) now show more error information

v14.14.0 - 07/08/2024

Added

  • utils render_jinja_template now validates identifiers before filling template
  • external render_word_file and WordFileTemplate.render() now validate identifiers before filling template
  • external Added file property to SpreadsheetCalculation and SpreadsheetResult

Fixed

  • parametrization Removed distracting warning when Controller contains an empty parametrization
  • core Delete temp file from disk after closing a File.from_url

v14.13.0 - 10/07/2024

Added

  • views Added TableView for easy creation of output tables

v14.12.0 - 01/07/2024

Added

  • api_v1 Added entity_compute method for doing computations via the API

Fixed

  • external Updated polling interval of external integrations to make short duration external computations more responsive

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