Sparked by a reddit inquiry, I have added an example on my github to access the database table results using the ETABs API. The python code can be found on github.

The Code

The example code works to access the joint reaction database table results from ETABs v20.


In the image above, you can see that the python code pulls the correct vertical reaction when looking at the dead load reaction (3.177 kips). The python code returns results in pounds, but you can easily format your result units with SapModel.SetPresentUnits(x). The ETABs API document gives a good run down on all the units available.

ETABs Python

Your sharing is good. But I have an error when running the scripts. It happens when it tries to 

"show all the available tables that can be accessed". I mean at this line:

x = SapModel.DatabaseTables.GetAvailableTables(NumberTables,TableKey, TableName, ImportType)

I also installed "comtype,clients". Please help figure out my issue, thank you.

Traceback (most recent call last):
  File "D:\WORK\myPython\myapp\venv\lib\site-packages\comtypes\", line 274, in __getattr__
    fixed_name = self.__map_case__[name.lower()]
KeyError: 'databasetables'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\WORK\myPython\EtabsApi\try\", line 24, in <module>
    x = SapModel.DatabaseTables.GetAvailableTables(NumberTables,TableKey, TableName, ImportType)
  File "D:\WORK\myPython\myapp\venv\lib\site-packages\comtypes\", line 276, in __getattr__
    raise AttributeError(name)
AttributeError: DatabaseTables

@Khatran, what version of ETABs are you running?

Do the lines of code before x = SapModel.DatabaseTables.GetAvailableTables(...) work?


Thank you for your reply, I am using Etabs 18.0.2. But the code runs well on another PC with Etabs 18.1.1

I have tried to uninstall and reinstall the comptypes.cilent but it still does not work.

I love making some small desktop app by using Etabs-Api, and your sharing helps me much. Thank again

Thank you, I have created an Etasb-Plugin, for Normalized Axial Force checking under seismic according to Eurocode. I want to share it with you if you wish. smiley

Khatran, that looks like a great program! Is that graphical user interface made with python or is that a C# addin for ETABs? I want to explore making an addin with buttons natively in ETABs.

Throw the code up on github if you would like to share and drop a link in the comments, it would be great to see how you coded this up.


I wrote by (also possible by C# or python), then debug to a .dll file to use as Etabs plugin. I do not have GitHub account, but I could send it to you by email if you want to. 

I also have some tools to define multi-framing sections, materials, load patterns, and load combinations.... automatically (I have posted some videos on my channel). Even we could run it by VBA.

Hi, this is my new app for exporting column/wall to Prokon for design.

Our Sidebar

You can put any information here you'd like.

  • Latest Comments
  • retug on RAM to RevitĀ® - R2R - (part 2) -

    Great ideas Celt.

    Mapping process done on beam ends would be a good alternate user option.

    With regards to the graphics, I agree, something to make deltas pop a little more visually would be nice.


  • Celt83 on RAM to RevitĀ® - R2R - (part 2) -

    Awesome stuff!

    Some possible additions that may be helpful.

    - allow the mapping process to be done against beam ends and not just grids.

    - you chose great colors for the beam maps, if you go one step further with the graphics and allow for a “multiply” blend mode all ...

  • retug on Diaphragm Slicer New and Improved -

    Hi Trenno, I just uploaded a new .dll file to github that has metric units included. Give it a whirl, let me know if you have any trouble on the install. I think it should be as easy as downloading the .dll file and adding the file path to the