Академический Документы
Профессиональный Документы
Культура Документы
Release Notes
Contents
1
Introduction ................................................................................................................ 1
Introduction
This document describes the fixes and improvements in the Open API, released in
Tekla Structures version 17.0 SR1. The new or changed functionality of the Open API
in Tekla Structures 17.0 is also included in Chapter 3.
Reference manual
This chapter describes the Open API fixes released with Tekla Structures 17.0 SR1.
The assembly version numbers remain unchanged:
AssemblyVersion: 17.0.0.0
AssemblyFileVersion: 17.0.0.0
New or Changed
Functionality in 17.0
This chapter describes the new or changed functionality in Tekla Structures 17.0.
The goal of the API content freeze is that modeling applications and plug-ins will then
work with future Tekla Structures versions without recompilation. The freezing is valid
until compatibility is broken due to a mandatory reason such as upgrading the API
assemblies to a newer .NET framework version.
The scope
The API content freeze concerns the following assemblies in the API:
Tekla.Structures.dll
Tekla.Structures.Model.dll
Tekls.Structures.Plugins.dll
Tekla.Structures.Dialog.dll
Tekla.Structures.Datatype.dll
In practice, the freezing means that the public properties and methods of public
classes in 17.0 will not change with future versions in the above assemblies.
However, new classes or new properties or methods to existing classes can still be
added.
How is compatibility
achieved?
Compatibility will be handled using configuration files. For plug-ins this happens
automatically, but for applications the bindingRedirect element must be added to the
application configuration file (app.config). For example:
<dependentAssembly>
<assemblyIdentity name="Tekla.Structures
publicKeyToken="2f04dbe497b71114 culture="neutral" />
<bindingRedirect oldVersion=17.0.0.0 newVersion=18.0.0.0"/>
</dependentAssembly>
Tekla Open API now uses the .NET Framework version 4.0.
API architecture
clarified
Obsolete methods and constructors (listed later in this document) have been
removed.
Dependencies between assemblies have been reduced. Now it is easier to implement
a drawing application without using the Tekla.Structures.Model assembly.
The GetAdvancedOption method has been moved from the Tekla.Structures.Model
namespace to the Tekla.Structures namespace. A new TeklaStructuresSettings class
provides methods to inquire advanced options.
The GetSelectedObjects method has been moved from the Tekla.Structures.Model
namespace to the Tekla.Structures.Model.UI namespace. The method can now be
found from the ModelObjectSelector class.
The ModuleManager class has been moved from the Tekla.Structures.Model
namespace to the Tekla.Structures namespace.
The GetCurrentProgramVersion method has been moved from the Model class in the
Tekla.Structures.Model assembly to the TeklaStructuresInfo class in the
Tekla.Structures assembly.
The AnalysisResult class has been moved from the Model assembly to the Analysis
assembly.
Remoting exception
thrown
Logging
The log file dotlog.txt doesnt exist anymore in the \nt\bin folder. Loaded plug-ins
and their assemblies are now written to the Tekla Structures log file.
Previously, the GetAngleBetween method in the Vector class worked only with angles
bigger than 2.56 degrees; now the tolerance is 0.8 degrees.
The Identifier property has been added to the PluginBase and ConnectionBase
classes. The property can be used to store custom properties as UDAs to a plug-in
inside the Run method.
TEKLA OPEN API RELEASE NOTES
New or Changed Functionality in 17.0
The symbol is now drawn and visible by default in all model plug-ins with Forms
dialogs. For plug-ins with inp dialog definition the symbol visibility can be defined in
the inp file by adding the line:
draw(1, 50.0, 50.0, 0.0, 0.0)
Max 10 input
definitions
Maximum number (10) checking has been added for input definitions in the
<List>InputDefinition for PluginBase components.
All fields of the Model assembly classes have been changed to properties.
Obsolete constructor
removed
The Model constructor with the bool parameter SkipChannelCreation has now been
removed (the constructor was marked as obsolete earlier). Use Model() instead.
Obsolete methods
removed
The Open method, which was earlier marked as obsolete, has now been removed.
Use methods in Tekla.Structures.Model.Operations instead.
The obsolete method SaveAsWebModel has been removed. Use methods in
Tekla.Structures.Model.Operations instead.
PickFace added
The PickFace method returns a PickInput instance that contains the face points and
the object. Please see the code example in the PickInput class documentation.
ComponentInput
implements
ICollection
The ComponentInput class now implements the ICollection interface. The InputItem
class can be used with the PickInput class in face picking. For example:
ComponentInput ComponentSel = C.GetComponentInput();
IEnumerator Enumerator = ComponentSel.GetEnumerator();
while (Enumerator.MoveNext())
{
InputItem ObjectInput = Enumerator.Current as InputItem;
if (ObjectInput.GetInputType() ==
InputItem.InputTypeEnum.INPUT_1_OBJECT)
{
Beam BeamInput = ObjectInput.GetData() as Beam;
}
}
The EdgeChamfer class has been added. With the new class you can define how the
part edge is chamfered. For example:
The Insert and Delete methods have been added to the Phase class.
The GetPhases method was added to the Model class. The method returns a
PhaseCollection instance.
Display prompt
Access to the Tekla Structures message panel is now possible by using the
DisplayPrompt method in the Operation class.
Checking numbering
The Split method for rebar groups, located in the Operation class, splits the rebar
group and creates a new one in the given position. Earlier the method returned a
boolean value, but now the method returns the created RebarGroup instance if the
splitting was successful.
Fetching objects by
type
Exceptions improved
The Material and Profile properties need to have some information before
inserting/modifying a Part, otherwise an ArgumentException is thrown.
An ArgumentNullException has been added to HierarchicObject, Task and
HierarchicDefinition constructors.
Stitched weld
Now it is possible to choose the weld technique: stitched weld or not stitched weld.
"Intermittent" properties for above and below lines have been removed. Now the weld
is considered to be intermittent if the pitch value is greater than zero.
The modal dialog "Assembly structure includes weldings or bolts. Delete weldings
and bolts?" is not shown anymore when trying to remove or add a part to an
assembly. The methods fail if there are workshop welds/bolts.
Modal warning dialogs do not appear anymore when combining parts; the warnings
are ignored.
The Class property has been added to the Connection, Detail and Seam classes.
Seams without
secondaries
Getting objects by
bounding box
changed
ProjectInfo improved
The ProjectInfo class now contains the Info1 and Info2 properties which appear in the
Project Properties dialog in Tekla Structures.
A new class ClipPlane has been added. The class contains the following methods:
Insert
Delete
Modify
The GetClipPlanes method for getting all the clip planes from the view has been
added to the View class. A new class ClipPlaneCollection has also been added.
ModelHistory class
changed
The ModelHistory class now supports multiuser models. The class has also been
changed to be a static class.
The method names have been changed to follow the naming convention in the
ModelObjectSelector: GetAllModifiedAfterModStamp -> GetModifiedObjects.
The new method names are:
GetModifiedObjects(ModificationStamp ModStamp)
GetModifiedObjectsWithType(ModificationStamp ModStamp,
ModelObject.ModelObjectEnum Enum)
Methods to retrieve deleted objects have been added:
GetDeletedObjects(ModificationStamp ModStamp)
GetDeletedObjectsWithType(ModificationStamp ModStamp,
ModelObject.ModelObjectEnum Enum)
Beam.Type added
The Type property has been added to the Beam class for identifying the beam types
column, pad footing and strip footing in the selection and creation of beams. In the
creation, the Type must be initialized in the constructor.
Other fixes
Beams that use the plate profile and are created with components can now be
selected correctly.
It is now possible to change the number of points a contour plate has. Earlier, the
modification of a contour plate failed if the number of points was changed.
Now it is possible to select nonparallel tapered curved rebar groups. Earlier, the
Object cannot be selected exception was thrown.
The PrimaryAxisDirection vector in the Load class is normalized when
inserting/modifying Load objects.
A new solid creation type (PLANECUTTED) has been added to the Solid class. When
the type is used, the solid consists of the raw solid, fittings and cut planes.
Obsolete AttributeFile
property removed
The duplicate attribute file name property has been removed from the View class. The
LoadAttributes method in the ViewAttributes class should be used instead.
Filtering by
ReinforcementBase
Other fixes
Fixes
Now the LoadAttributes method works correctly for plug-ins with PluginFormBase
dialogs.
Profiles with brackets are now written properly in the ProfileSelectionForm.
Decimal values are now using dots instead of commas.
RebarItem improved
The rebar item now includes all the properties available in the catalog such as the
actual diameter and weight.
The bending radius had a wrong type (string), but it has now been fixed and the type
is double.
The RebarItem.Select method has been implemented.
MeshItem improved
The mesh item property types have now been changed to follow the data types in the
mesh catalog.
The MeshItem.Select method has been implemented.
Units are now returned in millimeters.
Rebar and mesh catalogs are now searched for in the model folder, XS_PROJECT,
XS_FIRM, and XS_PROFDB.
The Analysis constructor with the bool parameter SkipChannelCreation has now been
removed (the constructor was marked as obsolete earlier). Use Analysis() instead.
AnalysisModel class
fixes
Insert: Refreshes the model and adds the model to the analysis models dialog
table.
Delete: Removes the model from the analysis models dialog table.
Select: Refreshes the model.
The enumeration of analysis models does not select the models. Only the model
identifier and name are retrieved.
AnalysisModelHandler
class added
It is now possible to set and get the active analysis model, and to modify the analysis
model content.
Methods:
GetActiveModel
SetActiveModel
AddPart
RemovePart
AddLoad
RemoveLoad
10