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. This header will only be present in major releases, on Beta features, or when a Python version is dropped.
- 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.26.0 - 21/10/2025
Added
externalAddedget_aec_data_model_element_group_idonAutodeskFile
v14.25.0 - 17/09/2025
Added
viewsAddedAutodeskViewfor viewing Autodesk cloud storage modelsparametrizationAddedAutodeskFileFieldfor integrating with Autodesk cloud storage.
v14.24.1 - 20/08/2025
Docs
viktorInclude docstrings in stubs
Fixed
parametrizationFixed a bug that caused an emptyOptionListElementto crash the editor.viktorInit stubs missing imports of several modules fromexternal
Security
viktorUpgrade from manylinux2014 to manylinux_2_28
v14.24.0 - 29/07/2025
Added
coreAdded allow_saving to Controller.
v14.23.0 - 22/07/2025
Added
externalOAuth2Integrationto support third-party OAuth 2.0 integrations
v14.22.0 - 22/05/2025
Added
geometrySupport counter-clockwise profile forPolygonextrusionviewsAddedMapCircleobjectviewsMake private properties ofDataItempublic and make 'value' argument optionalviewsDirectly use a plotly Figure object inPlotlyResult/PlotlyAndDataResultviewsAppend items to an existing data group usingDataGroup.add()viewsAdded propertiesGeoPoint.latitudeandGeoPoint.longitudegeometrySupport hex value and RGB tuple as 'color' input on aMaterialviewsvisibleargument on views to enable view visibility based on params
v14.21.0 - 29/04/2025
Added
parametrizationinitially_expandedargument onSectionto expand or collapse individual sections on editor entryparametrization[BETA]Chatfield
v14.20.1 - 24/03/2025
Added
viktorSupport numpy v2
v14.20.0 - 05/03/2025
Added
resultDownloadResult allows file names consisting of non-ASCII characters and whitespacesparametrizationSupport OutputField in DynamicArray
Docs
api_v1Updated docstring referenceuses_privileged_apitoenable_privileged_api
Fixed
externalRcsOutputFileParser return format breaks backward compatibility in case of empty XML elementsparametrizationError in FunctionLookup during generation of OutputField causes broken editor
v14.19.0 - 08/01/2025
Known Issues
external[fixed in v14.20.0] RcsOutputFileParser return format breaks backward compatibility in case of empty XML elements
Added
coreAppoint top-level entity as starting page withInitialEntityuse_as_start_pageargument
v14.18.0 - 03/01/2025
Known Issues
external[fixed in v14.20.0] RcsOutputFileParser return format breaks backward compatibility in case of empty XML elements
Added
parametrizationSupport 'name' on DynamicArrayparametrizationRemoved [BETA] status from GeometrySelectField and GeometryMultiSelectFieldutilsIncreased expiration of memoization results from 1 hour to 24 hoursutilsIncreased amount of locally stored memoization results from 10 to 50 items
Fixed
coreRemove newly created file key from storage in case subsequent Storage.set failsparametrizationWarning regarding numeric option value within a table is not triggered for AutocompleteField and MultiSelectFieldparametrizationFixed typehint of default argument in GeometryMultiSelectField
v14.17.0 - 03/12/2024
Known Issues
external[fixed in v14.20.0] RcsOutputFileParser return format breaks backward compatibility in case of empty XML elements
Added
externalDynamoAnalysisexternalETABSAnalysisexternalMatlabAnalysisexternalPlaxisAnalysisexternalPythonAnalysisexternalRevitAnalysisexternalSAP2000AnalysisexternalTeklaAnalysis
v14.16.2 - 30/10/2024
Known Issues
external[fixed in v14.20.0] RcsOutputFileParser return format breaks backward compatibility in case of empty XML elements
Added
externalSerialized SCIA model is compressed to allow for large input models
v14.16.1 - 15/10/2024
Known Issues
external[fixed in v14.20.0] RcsOutputFileParser return format breaks backward compatibility in case of empty XML elements
Fixed
api_v1Fixed several Entity methods that did not work when using a Personal Access Token
v14.16.0 - 08/10/2024
Known Issues
external[fixed in v14.20.0] RcsOutputFileParser return format breaks backward compatibility in case of empty XML elements
Action Required
viktorRemoved support for Python 3.8
Added
viktorSupport for Python 3.13
Deprecated
viktorSupport for Python 3.9 will be removed (#U91)
Docs
viktorFixed that public classes/functions not in all were excluded from the docs
v14.15.2 - 04/09/2024
Fixed
viewsFixed TableView from pandas Styler object crashing on unsupported formatviktorRequests now use the user's system certificates to solve SSL cert verification errors
v14.15.1 - 26/08/2024
Fixed
viktorLazy import of theexternalmodules which fixes a potential ImportError and improves import speedviewsLazy import of pandas to improve import speed of theviewsmodule
v14.15.0 - 22/08/2024
Added
viktorSupport for single import (e.g.import viktor as vkt; vkt.NumberField(...))coreMake 'label' on ViktorController optionalviewsMake 'duration_guess' on all Views optional
Fixed
viewsFix bug with usingTableViewwithpandasshowing data incorrectly in certain casesviewsFix small typo inSummaryItemsuffix docstringexternalFix error mapping for spreadsheet calculation (SpreadsheetCalculation) so more error information is shownexternalFix error mapping for spreadsheet renderer (SpreadsheetTemplate / render_spreadsheet) so more error information is showncoreExternal services (e.g.convert_word_to_pdf,render_jinja_template, etc.) now show more error information
v14.14.0 - 07/08/2024
Added
utilsrender_jinja_templatenow validates identifiers before filling templateexternalrender_word_fileandWordFileTemplate.render()now validate identifiers before filling templateexternalAddedfileproperty toSpreadsheetCalculationandSpreadsheetResult
Fixed
parametrizationRemoved distracting warning when Controller contains an empty parametrizationcoreDelete temp file from disk after closing aFile.from_url
v14.13.0 - 10/07/2024
Added
viewsAddedTableViewfor easy creation of output tables
v14.12.0 - 01/07/2024
Added
api_v1Addedentity_computemethod for doing computations via the API
Fixed
externalUpdated polling interval of external integrations to make short duration external computations more responsive
v14.11.0 - 18/06/2024
Added
api_v1Added retries in relevant API callsparametrizationAdded support for disabling aStep
v14.10.1 - 17/06/2024
Fixed
viktorMark numpy v2 as incompatible with viktor
v14.10.0 - 15/05/2024
Added
parametrizationAdded GeometrySelectField and GeometryMultiSelectFieldgeometryAddedidentifierto geometrical objects
Fixed
viktorFix command to also function forapp.py
v14.9.0 - 04/04/2024
Added
api_v1AddedAPI().get_workspaceandAPI().get_workspacesapi_v1Support to use the API module from outside of a VIKTOR app
v14.8.0 - 28/02/2024
Added
parametrizationDefine dynamic option lists per dynamic array rowviewsGeometryViewx_axis_to_rightsetting to set the initial x-axis orientationexternalGrasshopperAnalysis
Deprecated
viewsGeometryViewinitial x-axis orientation will be to the right by default (#U90)
Fixed
parametrizationFix incorrect or failing serialization when using non-native objects (e.g. Color, GeoPoint, etc.) in DynamicArray default
v14.7.1 - 06/02/2024
Added
parametrizationAddedworkspace_idin signature of controller methods and callback functions
v14.7.0 - 10/01/2024
Added
viktorSupport for Python 3.12parametrizationSupport for (dynamic) visibility onPage,Tab, andSectionparametrizationSupport to specifywidthon a Page and Step to adjust the width-ratio between input and output of an editorexternalSCIA binding: general cross-sections (polygon + openings only)
Deprecated
parametrizationRemovedalways_availablefrom buttons (#U88)viktorSupport for Python 3.8 will be removed (#U89)
Fixed
viktorUpgrade vendored trimesh to resolve numpy deprecation
v14.6.1 - 16/10/2023
Added
viewsAdded the possibility to use a FileResource as input for the IFCResult and IFCAndDAtaResult
Fixed
externalDynamoconvert_geometry_to_glbcrashes due to incorrect parsing of line strips
v14.6.0 - 03/10/2023
Added
externalIDEA binding: added support to set name of design memberexternalIDEA binding: added support to set description of extremeexternalIDEA binding: added support to set project data propertiesviewsIFCView and IFCAndDataView
Fixed
geoFixed error caused by deprecated matplotlib style 'seaborn-whitegrid'viktorRemoved upper bounds of VIKTOR dependencies ('pandas' and 'munch')
v14.5.0 - 05/09/2023
Added
geometryMetalness and roughness of defaultMaterialupdated to 0.5 and 1.0 respectivelygeometryMaterialproperties can now be set on the instance (e.g.mat.opacity = 0.3)viewsSupport marker size of aMapPointby specifying thesizeargument
Deprecated
geometryThreejs properties renamed / removed fromMaterial(#U87)
v14.4.0 - 25/07/2023
Added
viewsAddgeometry_typetoGeometryResultandGeometryAndDataResultto support alternative geometry file formats (e.g. 3DM)
v14.3.0 - 11/07/2023
Added
externalSCIA binding: create averaging strips (POINT type only)parametrizationImagefield that can be used to display a static image
v14.2.1 - 15/06/2023
Fixed
api_v1Regression inlen(entity.revisions())causing an error
v14.2.0 - 13/06/2023
Added
parametrizationChildEntityManagerfield that can be used to manage child entities
v14.1.0 - 23/05/2023
Added
externalSCIA binding: create selections
v14.0.0 - 12/04/2023
Action Required
viktorUpgrade instructions U76 - U86 have been applied
Added
parametrizationColorFieldwhich allow users to select from a color palettecoreNon-breaking user messages usingUserMessagetestingAllow forParametrizationclass inmock_params
Docs
testingSimplifiedMockedEntityexample
Fixed
viktorFixedmatplotlibdependency range set too strict
v13
v13.8.0 - 16/02/2023
Added
viktorSupport for Python 3.11
v13.7.2 - 08/02/2023
Docs
viewsAdded info about "id" attribute for interaction to docstring of GeoJSONResultresultFixed example inOptimizationResultdocstring
Fixed
externalDynamoconvert_geometry_to_glbnow correctly implements transparencygeometryFixed rotation bug in Cone geometry when oriented in (0, -1, 0) direction
v13.7.1 - 16/01/2023
Fixed
errorsFixedUserErrorto accept multiple messages of any type, in line withUserException
v13.7.0 - 16/12/2022
Added
resultSupport 'Munch' type in aSetParamsResultviewsNewImageViewandImageAndDataViewthat accept 'svg', 'jpeg', 'png', 'gif' filesparametrizationValidation of aStepusing theon_nextcallback functionerrorsUserErrorto show an error to the user and mark fields invalid in the interfacecoreShow/hide top-level entities on the dashboard withInitialEntityshow_on_dashboardargument
Deprecated
viewsSVGView,JPGView,PNGVieware replaced byImageView(#U82)viewsSVGResult,JPGResult,PNGResultare replaced byImageResult(#U82)viewsSVGAndDataView,JPGAndDataView,PNGAndDataVieware replaced byImageAndDataView(#U82)viewsSVGAndDataResult,JPGAndDataResult,PNGAndDataResultare replaced byImageAndDataResult(#U82)parametrizationViolated field constraints will block actions (#U83)viktorUserExceptionwill be replaced byUserError(#U84)
v13.6.2 - 05/12/2022
Fixed
geometryRegression inCircularExtrusioncausing incorrect positioning
v13.6.1 - 17/11/2022
Fixed
viewsRegression in SVGAndDataResult causing StringIO image to crash with UnicodeEncodeError in certain cases (e.g. matplotlib)
v13.6.0 - 7/11/2022
Added
viktorShow progress messages in terminalgeometrySpecifyshell_thicknesson aCircularExtrusionto create a hollow extrusion
Deprecated
geometryRemoveopen_endsfromCircularExtrusion(#U81)
Fixed
codemodFixed codemods failing on f-string with unparenthesized tuplesviktorIgnore errors in sending progress messagesviewsRegression in SVGResult causing StringIO image to crash with UnicodeEncodeError in certain cases (e.g. matplotlib)
v13.5.1 - 18/10/2022
Fixed
externalDynamoconvert_geometry_to_glbfix colors
v13.5.0 - 11/10/2022
Added
externalAdded repr function to spreadsheet input classesexternalVarious analysis classes and functions now accept aFileobject, or return aFileobject if as_file=TrueviewsAll image results (PNGResult, etc...) allow for image of typeFilegeogef_visualizationreturnsFileobject if as_file=TrueviewsWebResultallows forhtmlof typeFileandstrgeometrySupport visualization ofArc,Line, andPolylinein aGeometryViewtestingVariousmock_*Analysisclasses to facilitate easier testing of analysis classes
Deprecated
geometryRemovehex_to_rgbandrgb_to_hexfrom geometry module (#U79)parametrizationRemovemin_messageandmax_messagefromNumberField/IntegerField(#U80)
v13.4.0 - 12/09/2022
Added
externalUpload inputs ofrender_word_fileandWordFileTemplate.renderto s3 to prevent payload errorsexternalAdded torsion and interaction results toRcsOutputFileParser
Fixed
codemodU77 incorrectly includes yaml-comments in welcome_textexternalDynamoconvert_geometry_to_glbnow generates double-sided facescodemodU78 unintentionally removes comments from viktor.config.toml
v13.3.1 - 24/08/2022
Fixed
api_v1Incorrectly settinglast_saved_paramsequal to None for old entity revisionsexternalFix type-error in fill-spreadsheet helpergeometryget_lowest_or_highest_profile_xsometimes returns the incorrect profileparametrizationRaise a warning when using anOptionFieldwith anintvalue in aTable
v13.3.0 - 10/08/2022
Added
parametrizationIncreased character limit onTextelement from 500 to 1800testingmock_APIdecorator to mock theAPIclass in teststestingmock_paramsfunction to convert a JSON/dict to the (deserialized) paramstestingmock_Viewdecorator to mockViewdecorators in teststestingmock_SciaAnalysisto mockSciaAnalysis.executeand analysis returns in testsapi_v1CompareEntityTypes orUsers with "=="geometryCompareGeoPoints,GeoPolylines, orGeoPolygons with "=="
Deprecated
viktorapp_typeentry should be defined in viktor.config.toml (#U78)
v13.2.1 - 27/06/2022
Fixed
codemodU77 incorrectly fixing thewelcome_textpath
v13.2.0 - 15/06/2022
Added
geometryConstruct an extruded polygon usingPolygon.extrude()geometryComparePoints andLines with "==" (e.g.Point(1, 1) == Point(1, 1)-> True)geometryAllow for indexing/iterating ofVector,PointandLineobjectsgeometryLinemethodsproject_pointanddistance_to_pointcodemodApply all fixes of current major when using theviktor-cli fixcommand without --upgrade flagparametrizationSelect interaction on Map/GeoJSONView
Deprecated
viktorRemoval of manifest (#U77)
Fixed
geometrybug inpoints_are_coplanargeometrypoint_is_on_bounded_linenow correctly calculates for 3D
v13.1.0 - 06/05/2022
Added
externalSCIA binding:descriptionon (nonlinear) load combinationexternalSCIA binding: (general) solver settingsexternalSCIA binding: library cross-sectionsexternalSCIA binding: basic project dataexternalSCIA binding: cross-links
Fixed
viktorSet timeouts on addons requests to 60 seconds to prevent timeout errorsexternalSCIA binding: applying a line load on a circular plane edge no longer raises an error
v13.0.0 - 13/04/2022
Action Required
viktorUpgrade instructions U61 - U75 have been applied
Added
coreStorageclass to permanently store files which can be retrieved at any timeparametrizationFileFieldandMultiFileFieldwhich allow users to upload one or multiple filesparametrizationEntityOptionFieldandEntityMultiSelectFieldfor generic selection of entitiesparametrizationViktorParametrizationas alias ofParametrization
Deprecated
codemodCleanup previously set flags which were necessary to migrate to v13 (#U76)
v12
v12.12.2 - 23/08/2022
Fixed
api_v1Incorrectly settinglast_saved_paramsequal to None for old entity revisions
v12.12.1 - 11/04/2022
Docs
externalFixed example in Dynamo docstring
Fixed
parametrizationFixed U74 warning not being logged in case of dynamic options
v12.12.0 - 06/04/2022
Added
viewsup_axissetting to GeometryView and GeometryAndDataViewviewsGeometryResultaccepts a GLBFileviewsFix the font size of aMapLabelregardless of zoom level by setting thefixed_sizeflagexternalHelper functions for updating Dynamo input files and processing output files (results + geometry)externalGenericAnalysis.get_output_filereturns File object if as_file=TrueparametrizationSupport setting avalueand alabelof anOptionFieldoption within a tableparametrizationAddedentity_namein signature of controller methods and callback functions
Deprecated
viewsGeometryResultargumentvisualization_grouprenamed togeometry(#U73)parametrizationSetting both avalueand alabelof anOptionFieldoption within a table will no longer be ignored (#U74)viktorRemovednameandfilenamefrom the params (#U75)
Fixed
codemodU68 fixed for the case of having multiple 'import as' aliasesgeometryTorusandArcRevolveshowing wrong face normals and ignoring rotation angle
v12.11.0 - 09/03/2022
Added
viktorCreate a views-only entity type by omitting theparametrizationattribute on the correspondingControllerclassviewsSelect a custom map marker using theiconattribute onMapPoint
Deprecated
viktorThebackground_imageof a workspace is customizable through the admin panel instead of the manifest (#U71)apiThe completeviktor.apimodule and all of its classes and functions (#U72)
Docs
viewsFixed example in PlotlyView docstring
v12.10.0 - 08/02/2022
Added
viewsPlotlyView and PlotlyAndDataViewapi_v1Various missing functionalities (e.g. to create, delete and modify entities)viewsGeometryResultaccepts a (sequence of)TransformableObject(s)testingmock_ParamsFromFileto mock theParamsFromFileclass in tests
Deprecated
parametrizationAutomatic selection of a single option in anOptionFieldwill no longer be the standard behavior (#U69)geometryRemoved methodPolyline.from_dict(#U70)
Fixed
externalD-Foundations parser:IsKsi3Usedincorrectly returnsTrue
v12.9.0 - 11/01/2022
Added
parametrizationStepwhich can be used to have pages within a predefined order, browsable through a previous and next buttonparametrizationrow_labelattribute onDynamicArraywhich can be used to prefix the row index
Deprecated
viktorGEOLIB is now publicly available; hosting by VIKTOR will be terminated (#U67)parametrizationInput argumentrequire_all_fieldswill be removed from buttons (#U68)
v12.8.0 - 1/12/2021
Added
externalRemoved [BETA] status from the Robot integrationparametrizationRadio variant ofOptionField(vertical + horizontal)
Deprecated
parametrizationEntity selection fields return anEntityobject in the params instead of an integer (#U65)parametrizationNumberField variant attribute of typestr('slider') replaces typeEnum(NumberField.Variant.SLIDER) (#U66)
Fixed
externalD-Foundations and D-Settlement input file generation timeout increased to 30 seconds
v12.7.0 - 3/11/2021
Added
viewsAnupdate_labelcan be used to change the label of the update button of a ViewparametrizationAdescriptioncan now be added on action buttons, to provide more information to the user through a tooltipexternalIDEA-RCS RcsOutputFileParser: decision method added to fatigue resultsexternalIDEA-RCS RcsOutputFileParser: obtain combined results per extreme usingsection.extremes()externalIDEA binding:Member.create_bar_layer()andReinforcedCrossSection.create_bar_layer()to create multiple bars positioned on a lineexternalIDEA binding:theta,theta_min,theta_max, andn_cycles_fatiguecan be set in theCodeSettingsexternalIDEA binding:relative_humiditycan be set in the design member dataexternalIDEA binding: a general cross-section can be added to a model, defined by a set of coordinatesparametrizationTextfield that can be used to display a static text
Docs
parametrizationParameter NumberField.step added to docstringparametrizationFixed example in ParamsFromFile docstring
Fixed
externalScia input file generation timeout increased to 30 seconds
v12.6.0 - 29/09/2021
Action Required
external[BETA] Robot binding:requested_resultsformat has changed; specify per category which components are to be returned
Added
externalSCIA binding: Model.create_numerical_cross_sectionexternalSCIA binding: Model.create_point_load_nodeexternalSCIA binding: addedangleargument to Model.create_point_loadcoreController attributesummaryis no longer required to be definedcoreController attributes (label,summary,parametrization, etc.) visible in stubs and docs
Deprecated
api_v1PrivilegedAPIhas been replaced by explicitprivilegedflag on the individual API calls (#U64)
Docs
geometryFixed code-block inRDWGSConverter.from_wgs_to_rd()viktorLink to upgrade instruction webpage in deprecation warnings
Fixed
externalWord file rendering timeout increased to 60 secondsparametrizationNaming 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
parametrizationPage which can be used to construct a combination of inputs (e.g. tabs / sections) and outputs (views)coreImproved upload performance when no data is returned during post processingapi_v1Multiple API requests within the same job are now faster due to session sharingcoreImproved error messages when a Summary is wrongly defined (e.g. non-existing SummaryItem 'source')geoSoilLayout.filter_layers_on_thickness merges adjacent layers with equal property values of type 'str', and raises a more explicit error otherwiseexternalIDEA-RCSRcsOutputFileParserwhich is an improved version ofOutputFileParser(allowing large files)geometryImproved performance of TriangleAssembly and Polygon visualization. Additionally askip_duplicate_vertices_checkflag can be set to boost performance further.parametrizationThe width-ratio between input and output of an editor can be adjusted through awidthargument on ParametrizationparametrizationAdescriptioncan now be added on a Field / Tab / Section / Page, to provide more information to the user through a tooltipviewsAdescriptioncan now be added on a View, to provide more information to the user through a tooltip
Deprecated
geoRenamedSoilLayout2D.threejs_visualisation()toSoilLayout2D.visualize_geometry()andSoilLayer2D.threejs_visualisation()toSoilLayer2D.visualize_geometry()(#U62)parametrizationInput argumentsprefixandsuffixon a DateField will be removed (#U63)
Docs
viktorRegular docs maintenance
Fixed
geometrySmall triangles return NaN when calling the area
v12.4.0 - 14/07/2021
Added
externalSCIA binding: NonLinearLoadCombination can be used inModel.create_result_class()
Docs
viktorAdded description of publish commands to cli guide
Fixed
externalTimeout issue when using large files inrender_spreadsheet()andSpreadsheetCalculation.evaluate()
v12.3.1 - 25/06/2021
Fixed
parametrizationIssue where clicking "Add new row" on a Table does not work
v12.3.0 - 25/06/2021
Added
externalIDEA-RCS binding: fatigue loading can be applied on an extremeexternalIDEA-RCS OutputFileParser: fatigue results can be parsedviews'points' and 'holes' properties added on MapPolygonexternalLog when external analysis job has been completed successfullyparametrizationSimple options can be used in OptionField, AutocompleteField, MultiSelectField (e.g.options=['A', 'B', 'C'])
Deprecated
coreEntity-type information (label,children, andshow_children_as) is moved from the manifest to the Controller (#U61)
Fixed
utilsMemoized functions called on app-load breaks in production
v12.2.0 - 26/05/2021
Added
parametrizationGeoPointField, GeoPolylineField, and GeoPolygonField can now be used in a DynamicArrayexternal[BETA] RobotAnalysis
Docs
viktorRegular docs maintenance
v12.1.0 - 18/05/2021
Added
parametrizationParametrization can consist of 1 layer (Field) or 2 layers (Tab + Field, Section + Field)externalImproved error handling in execution of RFEMAnalysisgeometryCone objectapi_v1Allow negative indexing on EntityListparametrizationMore consistent naming for many fields (old names will be deprecated in future)resultAllow for multiple files to be downloaded (as zip-file) in DownloadResult
Docs
viktorRegular docs maintenance
Fixed
parametrizationSetting fieldnameargument using dot-notation within TableInput/DynamicArray was mistakenly allowed