VB.Net Get Reference to Object, Tekla Open API
This article explains how you can reference to existing objects in a Tekla Structure model using the Tekla Open API in VB.Net.
Add reference to the Tekla.Structures.Model library located in the path “C:Program FilesTekla Structures20.0ntbinplugins” and manually open the tekla model. This has been covered in the article below:
Get Reference to Concrete Part:
The following code will loop through all the objects in the model. It will return the first instance of a concrete part it finds:
Imports TSM = Tekla.Structures.Model ''' <summary> ''' Returns reference to first concrete part found in model ''' </summary> ''' <remarks></remarks> Private Function GetConcretePart() As TSM.Beam Dim appModel As TSM.Model appModel = New TSM.Model Dim objModel As TSM.ModelObject Dim objBeam As TSM.Beam For Each objModel In appModel.GetModelObjectSelector.GetAllObjects objBeam = TryCast(objModel, Tekla.Structures.Model.Beam) If IsNothing(objBeam) = False Then appModel = Nothing objModel = Nothing Return objBeam End If Next appModel = Nothing objModel = Nothing Return Nothing End Function
Note that the “Beam” object could actually be any concrete part (column, slab, foundation, …). lines 11~16 loop through every object in the model. Line 12 tries to cast the object into a beam object. If it succeeds then line 14 will return the beam object.
Get Reference to Single Rebar:
Similar to the code in the previous section the code in this section will return the first instance of a single rebar it finds:
Imports TSM = Tekla.Structures.Model ''' <summary> ''' Returns reference to first single rebar found in model ''' </summary> ''' <remarks></remarks> Private Function GetSingleRebar() As TSM.SingleRebar Dim appModel As TSM.Model appModel = New TSM.Model Dim objModel As TSM.ModelObject Dim objSingelRebar As TSM.SingleRebar For Each objModel In appModel.GetModelObjectSelector.GetAllObjects objSingelRebar = TryCast(objModel, Tekla.Structures.Model.SingleRebar) If IsNothing(objSingelRebar) = False Then Return objSingelRebar End If Next Return Nothing End Function
Other Object Types:
In the previous 2 sections I’ve explained how you can get reference to the first instance of a concrete part and single reinforcement found in the model. Similarly you get reference to any other object type in the model by replacing the cast type on line 12.
Sometimes you may be looking for a specific a specific object or group of objects. For example:
- All single rebars whose class value is “5”.
- All concrete parts whose name is “Column”.
- All group reinforcements with a rebar size equal to 22
- All concrete slabs who start at the elevation “12m”
This can easily be done by checking the object properties prior to returning them from the function. I have provide an example in the link below:
You can download the file and code used in this article from the link below: