Skip to main content

Sap2000py

pypiDownloadsDocumentation Statusgithub starslicensecode grade

Sap2000py is a python module to interact with Sap2000 API

This Demo below shows how to interact with SAP2000 using the Sap2000py library. The project includes complete examples of creating and manipulating SAP2000 models, running analyses, and exporting results to Excel.

Documents

You can find the latest documentation here

Or you can find documents for all versions here.

Contents

Installation

Using pip:

pip install Sap2000py

Usage

Below are detailed instructions for using Sap2000pyDemo.py.

Setting the Model Path

At the beginning of the script, set the path to your model file:

from pathlib import Path
#full path to the model
ModelPath = Path('.\Test\Test.sdb')

Creating and Opening a SAP2000 Project

Create a Sap2000py object and open the SAP2000 program:

from Sap2000py import Saproject

Sap = Saproject()
Sap.openSap()
Sap.File.Open(ModelPath)

Model Information

Get basic information about your SAP2000 project:

Sap.getSapVersion()
Sap.getProjectInfo()
Sap.getUnits()

Make changes to the model:

# Set the project information with field and value
Sap.setProjectInfo("Author","Gou Lingyun")
Sap.setProjectInfo("Description","This is a test model")

# or you can set project information with a dictionary
Sap.setProjectInfo(info_dict={"Author":"Gou Lingyun","Description":"This is a test model"})

# Set the units of the model
Sap.setUnits("KN_m_C")

Adding Materials and Elements

Add materials and elements to the model:

# Add China Common Material Set·
Sap.Scripts.AddCommonMaterialSet(standard = "JTG")

# Add Joints and Elements
joint_coord = np.array([[0,0,0], [10,0,0], [20,0,0], [30,0,0]])
Sap.Scripts.AddJoints(joint_coord)
Sap.Scripts.AddElements([[1,2], [2,3], [3,4]])

Analysis

Run a modal analysis:

Sap.Scripts.Analyze.RemoveCases("All")
Sap.Scripts.Analyze.AddCases(Casename = ['DEAD', 'MODAL'])
Sap.Scripts.Analyze.RunAll()

Post-processing

Export analysis results to an Excel file:

note: the following code is just an example, you can modify it according to your needs.

filename = 'F:\\python\\Sap2000\\Models\\Test.xlsx'
wb = openpyxl.load_workbook(filename)
ws = wb.worksheets[0]

Sap.Scripts.SelectCombo_Case(["DEAD"])
Name, EleAbsForce, __, __ = Sap.Scripts.GetResults.ElementJointForce_by_Group("PierBottom")
Sap.Scripts.writecell(ws, EleAbsForce[:,[2]], "D22")

wb.save(filename)

Saving and Closing

Save the project and close the SAP2000 program:

Sap.File.Save()
Sap.closeSap()

Dependencies

  • python>=3.9

This project requires the following Python libraries:

  • numpy
  • os
  • openpyxl
  • comtypes>=1.1.11
  • itertools
  • rich
  • loguru
  • pathlib
  • json
  • sectionproperties>=3.3.0

For more information, please check Sap2000py Demo and Build Continuous Bridge Demo.

Metadata

Release files for Sap2000py 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Sap2000py 0.1.6
File Size Uploaded
sap2000py-0.1.6.tar.gz 15.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Sap2000py 0.1.6
File Interpreter ABI Platform
sap2000py-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 30.9 kB

Release files / sap2000py-0.1.6.tar.gz

Download URL sap2000py-0.1.6.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
552be2c48af025ab457917bd18250fecfa226b5a5f701b8cbb0d7b1de4a57f31
BLAKE2b-256 checksum
How to use checksums
ab8958dca9d0fe0636aae8d383fd0c991d1b87e120e59ae03d5be83815658829
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release files / sap2000py-0.1.6-py3-none-any.whl

Download URL sap2000py-0.1.6-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
696ebcb23152fa5e62e72e7ca8c66b24e4af085503e9a1a4a85b381c858e622a
BLAKE2b-256 checksum
How to use checksums
30282f4730d8ba0b90fa68d15b64d170175bd4eb4e1a1ec1ea12e0cc04114a7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page