20. 桥通API
功能介绍
桥通API是桥通软件提供的一种接口,用于与外部程序进行交互。通过桥通API,用户可以在外部程序中调用桥通软件的功能,实现自动化分析、数据处理等。
调用方式
桥通API的调用方式主要有两种:
- 直接调用:用户在外部程序中直接调用桥通API的函数,实现对桥通软件的控制。
- 间接调用:用户在外部程序中调用桥通API的函数,桥通API再调用桥通软件的函数,实现对桥通软件的控制。
接口文档
桥通API的接口文档详细介绍了桥通API的函数、参数、返回值等信息。用户可以根据接口文档,在外部程序中调用桥通API的函数,实现对桥通软件的控制。
软件内部调用
文件导入导出
桥通支持python模型文件导入与导出,用户可点击文件→导入\导出→python文件,选择需要导入或导出的文件即可完成导入导出。
📌注意:目前python文件导入仅支持模型文件导入,暂不支持运行分析命令
内部运行演示
目前已默认配置好Python 环境,默认无需配置,可直接打开工具→命令窗口→输入代码→点击运行即可,在运行时默认运行按钮为灰显状态,运行完成后自动恢复为可点击状态。

📌注意:内部运行时(导入文件同理)等同于导入模块运行,请勿使用语句if name == "main":
自定义python解释器
可点击工具→API设置→python安装路径右侧编辑按钮,更改python解释器,默认开启服务器如下所示,调用时可以通过mdb.set_url函数设置调用服务器(默认调用为如下地址)。
注意:使用自定义python时请使用pip install qtmodel 安装第三方库并注意匹配当前桥通版本所支持的qtmodel版本号,可在API设置中查看当前版本桥通对应的版本号,第三方库安装与更新相关cmd命令如下(如未添加环境变量或环境变量中存在多个python请切换到对应python安装路径运行):
# 安装第三方库
python -m pip install qtmodel==1.1.13 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 更新第三方库
python -m pip install --upgrade qtmodel==1.1.13 -i https://pypi.tuna.tsinghua.edu.cn/simple
最新版本下载链接:Pypi官方网址 最新版本:1.1.13
mdb类提供了一系列用于处理模型数据的方法,包括节点、单元、荷载等全部建模相关操作,odb类提供了查询模型信息和结果信息相关操作,调用如下:

📌注意:如已下载第三方库,请及时更新至最新版本
Python基础教程
外部软件调用
支持外部运行和调试,可使用文件→导出→导出py功能,将导出后文件可直接在VSCode等IDE中运行,IDE环境可使用桥通下载目录下python39(已内置好当前版本qtmodel库),用户可使用update_model函数刷新界面实时数据显示。
Pycharm调用演示
查看当前桥通本地服务路径,使用set_url函数可链接桥通软件(默认55125端口时可省略),存在多桥通运行时设置地址参考工具→API设置→本地服务器地址

VSCode解释器配置
外部IDE调用时可选择桥通安装目录下PyFile中python.exe(已内置qtmodel包)

Autolisp调用桥通
VBA调用桥通
Video_2025-08-18_00039_20250818_13535729.mp4
Java程序调用
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class JavaPostExample {
public static void main(String[] args) {
try {
// 创建URL对象
URL url = new URL("http://localhost:55125/pythonForQt/");
// 打开连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为POST
connection.setRequestMethod("POST");
// 启用输入输出流
connection.setDoOutput(true);
// 设置请求头 支持Python(此时输入command) 和 PyFile(此时输入文件path)
connection.setRequestProperty("Content-Type", "Python");
// connection.setRequestProperty("Content-Type", "PyFile");
// 创建请求体
String jsonInputString = """
from qtmodel import*
mdb.initial()
mdb.add_nodes([[i+1,2,3]for i in range(200)])
mdb.update_model()""";
// String jsonInputString = "C:\Users\Desktop\PythonCode\连续钢梁建模.py";
// 发送请求体数据
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
// 获取响应
int status = connection.getResponseCode();
System.out.println("Response Code: " + status);
// 根据响应码处理不同的情况
if (status >= 200 && status < 300) {
// 成功响应
try (BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
System.out.println("Response Body: " + response.toString());
}
} else if (status == 400) {
// 400错误,读取错误信息
try (BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getErrorStream(), StandardCharsets.UTF_8))) {
StringBuilder errorResponse = new StringBuilder();
String errorLine;
while ((errorLine = br.readLine()) != null) {
errorResponse.append(errorLine);
}
System.out.println("Error 400 - Bad Request: " + errorResponse.toString());
}
} else {
// 其他错误状态码
System.out.println("Error: HTTP " + status);
// 尝试读取错误信息
try (BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getErrorStream(), StandardCharsets.UTF_8))) {
StringBuilder errorResponse = new StringBuilder();
String errorLine;
while ((errorLine = br.readLine()) != null) {
errorResponse.append(errorLine);
}
System.out.println("Error Details: " + errorResponse.toString());
} catch (Exception e) {
System.out.println("Could not read error details");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
BimBase调用
将上述文件配置到BIMBase自定义插件中,或配置bimbase开发环境后直接运行即可将当前开启的模型导入BIMBase
局域网内跨主机调用
解压后配置监听端口和本地桥通服务器地址,运行nginx.exe文件即可
-
配置conf文件
conf配置events {
worker_connections 1024;
}
http {
client_max_body_size 100m;
client_body_timeout 1200s;
client_header_timeout 1200s;
send_timeout 1200s;
# ---- 反向代理超时与缓存 ----
proxy_connect_timeout 1200s;
proxy_send_timeout 1200s;
proxy_read_timeout 1200s;
proxy_buffering off; # 关闭代理缓冲,适合大请求/流式
proxy_request_buffering off; # 上传大文件时减少落盘
server {
# 开辟新的端口监听其他主机请求
listen 61076;
server_name localhost;
client_max_body_size 100m;
location / {
client_max_body_size 100m;
# 输入本机服务器地址
proxy_pass http://localhost:55125/pythonForQt/;
}
}
}
-
开启nginx服务

-
局域网内其他主机调用post命令,只需输入被调用主机地址和nignx端口即可完成调用

IP地址查询方法
- 右键Windows, 选择"运行", 输入cmd, 回车打开命令窗口
- 输入ipconfig:查看网络配置
- 输入ipconfig /all:查看本机网络配置的详细信息
