Python调用ETABS API时如何遍历嵌套列表批量添加框架构件
嵌套循环简化实现方案
直接通过三层嵌套循环即可实现需求,完全对齐你给出的手写调用逻辑,无需逐行重复编写API调用代码:
# 遍历所有Z向高程 for z in range(3, 16, 3): # 遍历每一列(列索引范围0-4) for col in range(5): # 遍历相邻行配对:0&1、1&2、2&3、3&4 for row in range(4): SapModel.FrameObj.AddByCoord( X[row][col], Y[row][col], z, X[row+1][col], Y[row+1][col], z, "name", "section" )
逻辑说明
- 最外层循环与你原有逻辑完全一致,依次遍历高程值3、6、9、12、15
- 中间层循环遍历全部5列点位,对应手写逻辑中列0到列4的分段处理
- 最内层循环处理单列表下的4组相邻行连接,每轮取当前行
row和下一行row+1的点位坐标传入API,生成对应位置的框架构件 - 该循环的执行顺序和你手写的逐行调用顺序完全一致,不会出现框架构件添加顺序错乱的问题
通用化优化
如果后续X、Y坐标列表的行列数发生调整,无需手动修改循环边界值,可通过读取列表长度自动适配:
for z in range(3, 16, 3): total_cols = len(X[0]) total_rows = len(X) for col in range(total_cols): for row in range(total_rows - 1): SapModel.FrameObj.AddByCoord( X[row][col], Y[row][col], z, X[row+1][col], Y[row+1][col], z, "name", "section" )
内容的提问来源于stack exchange,提问作者FZL
相关产品推荐
相关产品推荐

