Tags

, , ,

This article explains how you can reference to existing objects in a Tekla Structure model using the Tekla Open API in VB.Net.


Step 1:

Add reference to the Tekla.Structures.Model library located in the path “C:\Program Files\Tekla Structures\20.0\nt\bin\plugins” 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.

  • TSM.RebarGroup
  • TSM.Grid
  • TSM.Weld
  • TSM.RebarMesh

Specific Objects:

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:

Example: Tekle Open API: Get All Parts With Specific Class

You can download the file and code used in this article from the link below:

If you need assistance with your Tekla model, or you are looking for a Tekla Open API programmer to hire feel free to contact me. Also please visit my home page  www.software-solutions-online.com