Guides and Articles

Use this documentation when building your Tekla Structures apps

Tekla Structures 17.1 Open API Release Notes

Updated: 17 Jul 2017

This document explains new features, fixes and improvements in Tekla Open API 17.1.

General improvements

Excecuting macro dlls

  • The same macro dlls can now be executed from several versions of Tekla Structures. The assembly rebinding takes care of the loading of the correct assemblies.

Tekla.Structures Assembly

New filtering API

  • A new filtering API has been created. The API makes it possible to create Tekla Structures filter files for models and drawings. There are two new namespaces, Tekla.Structures.Filtering and Tekla.Structures.Filtering.Categories. Please see the reference manual for more information.

 Tekla.Structures.Plugins Assembly

New type of plug-in added

  • A plug-in of the new type is not dependent on the input but is modifiable.
    • The new type has been added to PluginBase:
    • Dependency on input objects or positions is removed; if the input object or position is modified, then the plug-in is not modified.
    • The user is still able to open the UI from the created objects, modify the plugin from the UI and move or copy the plug-in.
    • If the input object is deleted, then the plug-in is deleted too.

Tekla.Structures.Model Assembly

Possibility to change connection type in modification

  • The possibility to change the connection, detail or seam type in modification has been added to the interface. The type can be changed by defining the new name and number for the instance before modifying. Input objects cannot be changed. The functionality is the same as when pressing "Modify connection type" for the selected connections in the connection dialog.

New properties, methods, etc.

  • The ViewFilter and DisplayType properties have been added to the View class in the Tekla.Structures.Model.UI namespace. The DisplayOrientationType enum has also been added. The display orientation type makes is possible to create a new model view that is in the “Plane” orientation.
  • A new method IntersectAllFaces(Point Point1, Point Point2, Point Point3) has been added to the Solid class. The method returns an IEnumerator.
  • A new solid type NORMAL_WITHOUT_EDGECHAMFERS has been added to the SolidCreationTypeEnum.
  • A new method GetObjectsByFilter has been added to the ModelObjectSelector class. The method makes it possible to enumerate through model objects by using a filter definition.
  • New ObjectMatchesToFilter methods have been added to the Operation class in the Tekla.Structures.Model.Operations namespace. The methods can be used to check whether an object matches to the criteria in the given filter file or filter definition.
  • The ModelInfo class now contains information of the current phase in the model. There are also two new methods in the Phase class: Select and Modify. Moreover, there are some methods to set or get user attributes. Previously, it was not possible to modify the current phase in the model. It can be done now by inserting a new phase with IsCurrentPhase as 1, or by modifying that property to be an existing phase.


  • The PickObjects() method in the Picker class can now return more than 99 objects.

Tekla.Structures.Drawing Assembly


  • The SymbolLibrary.GetSymbolLibraries() method does not return duplicates anymore.
  • The GetDrawingObject method in the InputDefinitionFactory class now automatically selects the drawing object that is returned. The GetView method also selects the returned view.
  • Keyplan views have been removed from the view enumeration in drawings.

Tekla.Structures.Datatypes Assembly

DistanceList storing

  • The DistanceList string is now always stored to the system with InvariantCulture and Millimeters ("3*300.00 700.00). The parsing of a DistanceList is done either in the dialog or in the Run method of the plug-in with the following:
    DistanceList Distances = DistanceList.Parse(_data.distlist, System.Globalization.CultureInfo.InvariantCulture, Distance.UnitType.Millimeter);

Tekla.Structures.Dialog Assembly

New user control ImageListCombo Box

  • The ImageComboBox control has been replaced with the new user control ImageListComboBox. ImageComboBox has been marked as obsolete. The new ImageListComboBox fixes several issues that the ImageComboBox had, such as:
    • The number of available items in the drop-down list now gets updated.
    • If a combo box image is smaller than the selection box area, there is now no excess space and the picture is surrounded by a border. The color of the border can be changed with the HoverColor property.
    • The excess white border around the combo box has been removed.
    • The images in the combo box are not flickering anymore and a border has been added around the selected item.
    • A new public event ImageListComboBoxMouseWheel has been added in order to be able to prevent the combo box from scrolling.
    • A new string property ToolTipText has been added in order to display a tooltip.
    • The ImageListComboBox is localizable. A method for localizing the control has been added to the Localization.Util class.

New common error dialog

  • The new ErrorDialog class has been added. The non-modal error dialog can group all the exceptions instead of showing one dialog for each exception. The common error dialog is shown to the user for example if the attribute file is corrupted, or if the loading of a plug-in failed. The error message for plug-in loading failure has also been improved.

new bindable radio button control

  • The new BindableRadioButton class has been added. The control supports attribute binding.

SaveLoad improvements

  • If the SaveAs text box of the SaveLoad control contains invalid characters, the saveAsButton is disabled. New argument validity checking has been added to the FormBase.SaveValues method. The new common error dialog is used to show errors.
  • The "Help..." button has been added to the SaveLoad control. The SaveLoad class has the new properties HelpUrl and HelpKeyword. If no HelpUrl is set, then the Tekla Structures Help is displayed by default. If no HelpKeyword is set, then the table of contents of the Tekla Structures Help is displayed.
  • The SaveLoad UI control has the following new events:
    • AttributesLoadClicked
    • AttributesSaveClicked
    • AttributesSaveAsClicked
    • HelpOpenClicked
  • The SaveLoad UI control could crash Tekla Structures if the attribute file searching raised an exception. Now, instead of showing a message box, Debug.WriteLine() is used.

New AttributesLoaded FromModel event

  • The AttributesLoadedFromModel event has been added to the PluginFormBase class. The event is raised when the attributes have been loaded from the model, i.e., when using the Get method.


  • Applied values are now loaded when opening a PluginFormBase dialog from a toolbar or the Component Catalog.
  • A PluginFormBase dialog class name can now end with "_01" or similar.
  • To prevent malfunctions, it is now possible to have only one plug-in dialog open at a time.
  • Sometimes exceptions were thrown from the Tekla.Structures.Dialog.dll in Tekla Structures start-up when reading plug-in dialogs. This has been fixed.
  • Tekla Structures could get stuck after clicking “Modify” in a plug-in dialog. This has been fixed.
  • The UI control ReinforcementSelectionForm is now loaded showing the preselected node. Previously this worked only with imperial units.

Tekla.Structures.Catalogs Assembly

RebarItem selection

  • Methods for RebarItem selection based on grade and nominal or actual diameter have been added to the Catalogs assembly. It is also possible to select RebarItems using the bending radius or the usage.

New component classes

  • The ComponentItemEnumerator and ComponentItem classes have been added to the Catalogs assembly.

Tekla.Structures.Analysis Assembly

Implementations added

  • The insertion/deletion/modification of the load combination (AnalysisLoadCombination) has been implemented.
  • The modification of node (AnalysisNode) properties has been implemented. It is possible to modify the following properties:
    • IsUserNode
    • IsUserConnectivity
    • Support (this is relevant when IsUserSupport is true)
  • The modification of node link (AnalysisNodeLink) properties has been implemented. It is possible to modify the following properties:
    • IsUserNodeLink
    • IsUserConnectivity
    • Connectivity (this is relevant when IsUserConnectivity is true)

Setting the default analysis properties

  • It is now possible to set the default analysis properties of physical parts. These properties are applied when a part is later added to an analysis model. The default properties are set by using an analysis model with the fixed name AnalysisModel.PART_DEFAULTS_MODEL_NAME. For example, to set the given part as the main part of the built-up section in all future analysis models: 
    AnalysisPart AnalysisPart1 = new AnalysisPart(); 
    AnalysisPart1.AnalysisModelName = AnalysisModel.PART_DEFAULTS_MODEL_NAME; 
    AnalysisPart1.PartID.ID = 785; 
    AnalysisPart1.AnalysisPartAnalysisProperties.BuiltupMode = AnalysisPartAnalysisProperties.BuiltupEnum.BUILTUP_MAIN_PART;



  • The modification of part design parameters (AnalysisPart.AnalysisDesignCode.DesignParameters) works now also for inactive analysis models.