Skip to main content
Glama
SorataYang

Qiao-MCP

by SorataYang

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_nodesA
    Create nodes in the bridge model from an explicit coordinate list (创建节点).

    Prefer `create_nodes_linear` when nodes are evenly spaced along a line
    — it is far more concise for typical bridge models.

    Args:
        node_data: List of node coordinates. Format: [[x,y,z], ...] or [[id,x,y,z], ...]
                   节点坐标列表,格式: [[x,y,z],...] 或 [[id,x,y,z],...]
        intersected: Whether to split elements at intersection points (是否交叉分割, 默认关)
        is_merged: Whether to merge duplicate nodes at the same position (是否合并重合节点)
        merge_error: Merge tolerance in model units, default 1e-3 (合并容差,默认1mm)
        numbering_type: Node numbering strategy: 1=sequential (编号方式: 1=顺序编号)
        start_id: Starting node ID when auto-numbering (起始节点编号)
    
create_nodes_linearA
    Create evenly-spaced nodes along a straight line — the preferred way to model
    a bridge girder (等间距直线批量创建节点).

    Instead of listing 101 coordinates for a 100m span at 1m intervals, just specify
    the count, starting point, and spacing in each direction.

    Args:
        count: Number of nodes to create (节点数量)
        start_x: X coordinate of the first node (起点X坐标)
        start_y: Y coordinate of the first node (起点Y坐标)
        start_z: Z coordinate of the first node (起点Z坐标)
        spacing_x: X increment between nodes, m (相邻节点X方向间距)
        spacing_y: Y increment between nodes (相邻节点Y方向间距)
        spacing_z: Z increment between nodes (相邻节点Z方向间距)
        start_id: Requested ID of the first node (期望的起始节点编号).
                  HONORED ONLY when the model has no conflicting IDs — the
                  backend assigns its own numbering when start_id is taken.
                  The returned message reports the IDs actually assigned;
                  always trust those, not start_id.
                  (编号可能被后端改派,请以返回消息中的实际编号为准)
        is_merged: Whether to merge duplicate nodes (是否合并重合节点).
                   When merging occurs, fewer nodes are created than requested.
        merge_error: Merge tolerance, default 1e-3 (合并容差)

    Examples:
        # 100m simply-supported beam, 101 nodes at 1m pitch along X axis:
        create_nodes_linear(count=101, start_x=0, spacing_x=1.0)

        # Two-span 50m+50m continuous beam, start x from 0:
        create_nodes_linear(count=101, start_x=0, spacing_x=1.0)
    
create_beam_elementA
    Create a single frame element (beam/truss/cable) with named parameters
    (创建单个梁/杆/索单元,参数具名).

    This is the preferred way to create individual elements — all parameters
    have explicit names and inline documentation.

    Args:
        node_i: Start node ID (I端节点编号)
        node_j: End node ID (J端节点编号)
        mat_id: Material ID — use get_materials to find valid IDs (材料编号)
        sec_id: Section ID — use get_section_list to find valid IDs (截面编号)
        element_id: Element ID, -1 = auto-assign next available ID (单元编号,-1表示自动分配)
        beta_angle: Beta angle in degrees, controls local axis orientation (贝塔角,度)
        ele_type: Element type (单元类型): 1=Beam(梁), 2=Truss(杆), 3=Cable(索)
        initial_type: Initial strain/force type (初始应变类型): 0=None, 1=Strain, 2=Force
        initial_value: Initial strain or force value (初始应变或内力值)

    Example:
        create_beam_element(node_i=1, node_j=2, mat_id=1, sec_id=1)
    
create_beam_elements_linearA
    Batch-create frame elements chaining nodes along a girder
    (批量创建沿主梁方向连接相邻节点的梁单元).

    PREFERRED: pass node_ids — the exact ID sequence reported by
    create_nodes_linear. Elements chain them in the order given:
    node_ids[0]→[1], [1]→[2], …
    (首选:直接传 create_nodes_linear 回报的编号序列,按给定顺序连接)

    Do NOT assume node IDs are consecutive. The backend assigns numbering in
    an order that is NOT predictable from the request — measured on qtmodel
    2.6.3, one batch came back [1104,1103,1102,1101,1100] (reversed) and
    another [1201,1200,1204,1203,1202] (neither ascending nor reversed).
    Chaining by ID arithmetic on such a batch silently produces folded-back
    geometry: elements of wrong length and direction that the solver accepts
    without error, yielding a model that computes the wrong bridge.
    (后端编号顺序不可预测,按编号递推会静默建出折返几何,求解器不会报错)

    Node coordinates are checked before writing: if the chain is not
    geometrically monotonic, the call fails instead of building a bad model.

    Args:
        mat_id: Material ID for all elements (所有梁单元的材料编号)
        sec_id: Section ID for all elements (所有梁单元的截面编号)
        node_ids: Node IDs in girder order, as reported by create_nodes_linear
                  (节点编号序列,按主梁走向排列). Creates len(node_ids)-1 elements.
        node_id_start: LEGACY fallback, only when node_ids is omitted — assumes
                       IDs run consecutively from here (旧式用法,假设编号连续)
        count: Number of elements, only with node_id_start (单元数量)
        element_id_start: ID assigned to the first element, then auto-incremented
                          (第一个单元的编号,后续自动递增)
        beta_angle: Beta angle in degrees, same for all elements (贝塔角,度)
        ele_type: 1=Beam(梁), 2=Truss(杆), 3=Cable(索)

    Examples:
        # Preferred — chain the IDs create_nodes_linear actually returned:
        create_beam_elements_linear(mat_id=1, sec_id=1,
                                    node_ids=[5, 501, 500, 502])

        # Legacy — only safe when the nodes are known to be consecutive:
        create_beam_elements_linear(mat_id=1, sec_id=1,
                                    node_id_start=1, count=100)
    
create_elementsA
    Create elements from a raw data array (通过原始数组创建单元).

    For beam elements, prefer `create_beam_element` or `create_beam_elements_linear`
    which have named parameters and are easier to use correctly.

    Args:
        element_data: Element data list. Each item format:
            - Beam/Truss: [id, type(1=beam,2=truss), matId, secId, beta, nodeI, nodeJ, initType, initVal]
            - Cable:      [id, 3, matId, secId, beta, nodeI, nodeJ, tensionType, tensionVal]
            - Plate:      [id, 4, matId, thicknessId, beta, nodeI, nodeJ, nodeK, nodeL, plateType]
            单元数据列表。梁=1, 杆=2, 索=3, 板=4
    
create_load_groupA
    Create a load group (创建荷载组).

    Every load in QiaoTong must belong to a load group.
    Create this before creating a load case or applying loads.
    每个荷载必须属于某个荷载组,迅建荷载工况之前先建荷载组。

    Args:
        name: Load group name (荷载组名称, e.g. "默认荷载组")
    
create_load_caseA
    Create a load case (创建荷载工况).

    A load case must exist before loads can be applied to it.
    In QiaoTong, creating a load case named "自重" is sufficient for self-weight —
    the software applies it automatically (see server instructions for details).

    Args:
        name: Load case name (工况名称, e.g. "自重", "SW", "恒荷")
        case_type: Load case type (荷载工况类型):
            "施工阶段荷载" (default) | "恒载" | "活载" | "制动力" | "风荷载"
            "体系温度荷载" | "梯度温度荷载"
            "长轨伸缩挠曲力荷载" | "脱轨荷载" | "长轨断轨力荷载"
            "船舶撞击荷载" | "汽车撞击荷载" | "用户定义荷载"
    
add_load_combineB
    Add a load combination (添加荷载组合).

    Combines multiple load cases into a single combination for analysis/checking.
    (将多个荷载工况组合成一个荷载组合)

    Args:
        name: Load combination name (荷载组合名称)
        combine_type: Combination type (组合类型): 1=Add(线性加), 2=Envelope(包络), etc.
        combine_info: List of components [[case_name, case_type, factor], ...]
                      (组合项信息 [[工况名, 类型(如'ST'), 系数], ...])
        describe: Description (描述说明)
        index: ID index, -1 for auto (编号,-1自动生成)
    
create_materialB
    Create a material in the bridge model (创建材料).

    Args:
        name: Material name (材料名称)
        mat_type: Material type (材料类型): 1=Concrete(混凝土), 2=Steel(钢材),
                  3=Prestress(预应力), 4=Rebar(钢筋), 5=Custom(自定义), 6=Composite(组合)
        standard: Code standard index, starts from 1 (规范序号,从1开始)
        database: Material database name, e.g. 'C50', 'Q345' (数据库名称)
        data_info: Custom material properties [E, γ, ν, α] for mat_type=5
                   自定义材料参数 [弹性模量, 容重, 泊松比, 热膨胀系数]
    
add_time_parameterB
    Add time-dependent material parameters (添加时间依存材料参数).

    Args:
        name: Parameter name (参数名称)
        code_index: Code index (规范号)
        time_parameter: Code specific parameters (规范关联的材料参数)
        creep_data: Custom creep data [[time, value], ...] (自定义徐变数据)
        shrink_data: Custom shrinkage data string (自定义收缩数据)
        index: ID index, -1 for auto (编号,-1自动生成)
    
add_creep_functionB
    Add user-defined creep function (添加自定义徐变函数).

    Args:
        name: Function name (函数名称)
        creep_data: Creep coefficient over time [[time(days), coefficient], ...]
                    (徐变系数表 [[天数, 徐变系数], ...])
        scale_factor: Scale factor (比例系数)
    
add_shrink_functionA
    Add user-defined shrinkage function (添加自定义收缩函数).

    Args:
        name: Function name (函数名称)
        shrink_data: Shrinkage strain over time [[time(days), strain], ...]
                     (收缩应变表 [[天数, 应变], ...])
        scale_factor: Scale factor (比例系数)
    
create_sectionA
    Create a cross-section (创建截面) — one tool for all parametric section types.

    Args:
        name: Section name (截面名称)
        sec_type: Section type, Chinese enum (截面类型,中文枚举)。
            sec_info layout per type (各类型 sec_info 参数顺序):
            ─ 基本形状 ─
            "矩形":       [宽, 高]
            "圆形":       [直径]
            "圆管":       [直径, 壁厚]
            "箱型":       [宽, 高, 底宽, 腹板厚, 顶板厚, 底板厚]
            "T形":        [宽, 高, 腹板厚, 顶板厚]
            "倒T形":      [宽, 高, 腹板厚, 底板厚]
            "I字形":      [顶宽, 底宽, 高, 腹板厚, 顶板厚, 底板厚]
            "马蹄T形":    [宽, 高, 腹板厚, 翼缘厚, 腹板底渐变高, 顶倒角宽, 顶倒角高, 底倒角宽, 底倒角高]
            "实腹八边形": [宽, 高, 倒角高, 倒角宽]
            "空腹八边形": [宽, 高, 腹板厚, 顶板厚, 底板厚, 倒角宽, 倒角高]
            "内八角形":   [宽, 高, 腹板厚, 顶板厚, 底板厚, 倒角宽, 倒角高]
            "实腹圆端形": [宽, 高]
            "空腹圆端形": [宽, 高, 壁厚]
            ─ 混凝土/组合 ─
            "I字型混凝土": [顶宽, 底宽, 高, 腹板厚, 顶板厚, 底板厚, 顶倒角宽, 顶倒角高, 底倒角宽, 底倒角高]
            "钢管砼":     [直径, 壁厚]
            "钢箱砼":     [宽, 高, 底宽, 腹板厚, 顶板厚, 底板厚]
            "混凝土箱梁": 顶板/腹板/底板参数列表,配合 box_num/box_height/symmetry/chamfer_info
            "工字组合梁" | "箱形组合梁" | "自定义组合梁": sec_info + mat_combine(材料组合比)
            ─ 钢结构带肋 ─
            "带肋H截面":   [高, 宽, 左右腹板厚, 横腹板厚, 腹板肋高, 腹板肋厚]
            "钢工字型带肋": [顶宽, 底宽, 腹板高, 顶板厚, 底板厚, 腹板厚, 顶缘肋距, 肋数, 肋距, 肋高, 肋厚]
            "带肋钢箱":   [宽, 高, 腹板厚, 顶板厚, 底板厚, 顶底板肋高, 顶底板肋厚, 腹板肋高, 腹板肋厚,
                          顶底板肋距, 腹板肋距, 腹板肋数, 顶底板肋数]
            "钢桁箱梁3":  [高, 宽, 顶悬臂肋高, 底悬臂肋高, 腹板厚, 顶板厚, 底板厚, 顶板肋高, 顶板肋厚,
                          底板肋高, 底板肋厚, 腹板肋高, 腹板肋厚]
            "钢桁箱梁1":  [高, 宽, 左悬臂宽, 右悬臂宽, 底悬臂高, 腹板厚, 顶板厚, 底板厚, 顶板肋高, 顶板肋厚,
                          底板肋高, 底板肋厚, 顶缘腹板肋距, 腹板肋数, 腹板肋距, 腹板肋高, 腹板肋厚,
                          左腹板肋位置, 右腹板肋位置, 左悬臂肋距, 左悬臂肋高, 左悬臂肋厚, 左悬臂肋顶距,
                          左悬臂肋底距, 左悬臂肋倒角, 右悬臂肋距, 右悬臂肋高, 右悬臂肋厚, 右悬臂肋顶距,
                          右悬臂肋底距, 右悬臂肋倒角]  (32项)
            "钢桁箱梁2":  [高, 宽, 左上悬臂宽, 右上悬臂宽, 左下悬臂宽, 右下悬臂宽, 腹板厚, 顶板厚, 底板厚,
                          顶板肋高, 顶板肋厚, 底板肋高, 底板肋厚, 顶缘腹板肋距, 腹板肋数, 腹板肋距,
                          腹板肋高, 腹板肋厚, 左腹板肋位置, 右腹板肋位置, 左上悬臂肋距, 左上悬臂肋高,
                          左上悬臂肋厚, 左上悬臂肋顶距, 左上悬臂肋底距, 左上悬臂肋倒角, 右上悬臂肋距,
                          右上悬臂肋高, 右上悬臂肋厚, 右上悬臂肋顶距, 右上悬臂肋底距, 右上悬臂肋倒角,
                          左下悬臂肋距, 左下悬臂肋高, 左下悬臂肋厚, 右下悬臂肋距, 右下悬臂肋高,
                          右下悬臂肋厚]  (38项)
        sec_info: Section dimensions in the order shown above (按上表顺序的截面尺寸参数)
        mat_combine: Material combination ratios for composite sections (组合梁材料组合比)
        box_num: Number of box cells, concrete box girder only (箱室数,混凝土箱梁)
        box_height: Box girder height, concrete box girder only (箱梁梁高)
        symmetry: Symmetric section, concrete box girder (是否对称截面)
        chamfer_info: Chamfer info strings, concrete box girder (倒角信息)

    For non-parametric sections use: create_polygon_section (任意多边形),
    create_line_width_section (线宽), create_section_from_properties (按特性值).

    Example:
        create_section(name="主梁", sec_type="矩形", sec_info=[1.0, 1.5])
        create_section(name="钢管", sec_type="圆管", sec_info=[0.6, 0.016])
    
create_polygon_sectionB
    Create a custom polygon cross-section (创建任意多边形截面).

    Args:
        name: Section name (截面名称)
        loop_segments: Dictionary of loops. Keys should be 'main' for outer loop and 'sub1'... for inner hollow loops. Example: `{"main": [[y1,z1], [y2,z2], ...]}`
    
create_line_width_sectionB
    Create a line-width cross-section (创建线宽截面).

    Args:
        name: Section name (截面名称)
        sec_lines: List of line segments with thickness. Format: [[y1, z1, y2, z2, thickness], ...]
    
create_section_from_propertiesA
    Create a section directly from its pre-calculated properties (通过截面特性直接创建截面).

    Args:
        name: Section name (截面名称)
        area: Cross-sectional area (横截面面积 Area)
        ix: Torsional constant (扭转惯性矩 Ixx)
        iy: Moment of inertia about y-axis (抗弯惯性矩 Iyy)
        iz: Moment of inertia about z-axis (抗弯惯性矩 Izz)
        sec_property: Full list of properties (up to 29). If not provided, a basic list is auto-generated with Area, Ix, Iy, Iz.
    
create_tapered_sectionA
    Create a tapered section from two existing sections (根据两个已存截面创建渐变截面).

    Args:
        name: Tapered section name (渐变截面名称)
        begin_id: Start section ID (起始截面编号)
        end_id: End section ID (终止截面编号)
        shear_consider: Consider shear deformation (是否考虑剪切变形), default True
        sec_normalize: Normalize section (截面归一化), default False
    
add_tapper_section_groupB
    Add a tapered section group (添加变截面组).

    Args:
        name: Group name (变截面组名称)
        ids: Element IDs in the group (变截面组内的单元编号)
        factor_w: Width variation factor (宽度变化系数)
        factor_h: Height variation factor (高度变化系数)
        ref_w: Width reference point (宽度参考点: 0=i, 1=j)
        ref_h: Height reference point (高度参考点: 0=i, 1=j)
        dis_w: Width variation distance (宽度变化距离)
        dis_h: Height variation distance (高度变化距离)
    
add_thicknessA
    Add a plate thickness property (添加板厚度).

    Args:
        name: Thickness name (厚度名称)
        t: Thickness in meters (板厚 m)
        thick_type: Thickness type (厚度类型): 0=平面内及平面外等厚, 1=平面内及平面外不等厚
        index: ID index, -1 for auto (编号,-1自动生成)
    
add_effective_widthB
    Add effective width to beam elements (添加截面有效宽度).

    Args:
        element_ids: Element ID(s) (单元编号)
        factor_i: I-end factor (I端系数)
        factor_j: J-end factor (J端系数)
        dz_i: I-end Dz offset (I端 Dz 偏移)
        dz_j: J-end Dz offset (J端 Dz 偏移)
        group_name: Boundary group name (边界组名)
    
update_section_biasA
    Update section bias/eccentricity (更新截面偏心/对齐方式).

    Args:
        index: Section ID (截面编号)
        bias_type: Bias type (偏心类型): e.g. "中心", "中上", "中下", "左上", "右上", "左下", "右下"
        center_type: Center type (中心类型): "质心" (Centroid) or "剪心" (Shear center), default "质心"
        shear_consider: Consider shear deformation (是否考虑剪切变形), default True
        bias_point: Custom bias offset [y, z] (自定义偏心距离)
        side_i: Apply to I-end (应用于I端) - for tapered sections True means I-end, False means J-end, default True
    
remove_sectionA
    Delete one or more sections from the model (删除截面).

    Args:
        ids: Section ID(s) to delete. Supports int, list, or range string '3to5'.
             (截面编号,支持整数、列表或范围字符串)
    
update_section_propertyA
    Directly modify the calculated properties of a section (直接修改截面特性值).

    Use this to manually override Area, Ix, Iy, Iz etc. after creation.
    Typically used for fine-tuning or correcting auto-calculated values.
    (用于手动覆盖截面面积、惯性矩等自动计算值)

    Args:
        index: Section ID (截面编号)
        sec_property: List of up to 29 section properties in order:
                      [Area, Asy, Asz, Ixx, Iyy, Izz, ...]
                      (截面特性列表,按顺序: 面积, 剪切面积y, 剪切面积z, 扭转惯性矩, 抗弯惯性矩y, 抗弯惯性矩z, ...)
        side_i: For tapered sections, True=I-end, False=J-end (变截面时 True=I端, False=J端)
    
calculate_section_propertyA

Recalculate properties for all sections in the model (重新计算所有截面特性).

Call this after creating or modifying section geometry to ensure Area, Iy, Iz, J etc. are up-to-date. (在创建或修改截面几何后调用,确保面积、惯性矩等特性值为最新)

set_supportA
    Set support boundary conditions on nodes (设置节点支承).

    Args:
        node_id: Node ID(s). Supports int, list, or range string like '1to10'
                 (节点编号,支持整数、列表或范围字符串如 '1to10')
        dx: Fix X translation (固定X平动), default True
        dy: Fix Y translation (固定Y平动), default True
        dz: Fix Z translation (固定Z平动), default True
        rx: Fix X rotation (固定X转动), default False
        ry: Fix Y rotation (固定Y转动), default False
        rz: Fix Z rotation (固定Z转动), default False
        group_name: Boundary group name (边界组名)
    
set_self_weight_stageA
    Configure self-weight for a construction stage (设置施工阶段自重).

    IMPORTANT — In QiaoTong, self-weight is NOT a load case. It is controlled
    by each construction stage's "self-weight stage number" per structure group.
    The solver computes gravity load automatically from section area × material
    unit weight × g. You only choose WHICH stage carries a group's self-weight.
    (桥通中自重不是荷载工况,由施工阶段对各结构组的"计自重阶段号"控制,
    求解器按 截面面积 × 材料容重 × 重力加速度 自动计算。)

    For a single-stage / one-shot (一次成桥) model, self-weight is handled when
    you merge stages via merge_operation_stage — you usually do NOT need this tool.
    Use it only to override which stage accounts for a group's self-weight.

    Args:
        stage_name: Construction stage name (施工阶段名)
        structure_group_name: Structure group name (结构组名)
        weight_stage_id: Self-weight stage number (计自重阶段号):
            0=not counted(不计自重), 1=this stage(本阶段), n=stage n(第n阶段)
    
set_gravityB
    Set the gravitational acceleration used for self-weight (设置重力加速度).

    Args:
        gravity: Gravitational acceleration in m/s² (重力加速度,单位 m/s²), default 9.8
    
apply_nodal_forceB
    Apply forces/moments at nodes (施加节点荷载).

    Args:
        node_id: Node ID(s) (节点编号)
        case_name: Load case name (荷载工况名)
        fx: Force in X direction (X方向力)
        fy: Force in Y direction (Y方向力)
        fz: Force in Z direction (Z方向力)
        mx: Moment about X axis (绕X轴弯矩)
        my: Moment about Y axis (绕Y轴弯矩)
        mz: Moment about Z axis (绕Z轴弯矩)
        group_name: Load group name (荷载组名)
    
apply_beam_distributed_loadA
    Apply distributed load on beam elements (施加梁单元分布荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        direction: Load direction (荷载方向): 1=Global X, 2=Global Y, 3=Global Z,
                   4=Local X, 5=Local Y, 6=Local Z
        load_values: Load values at positions (荷载值列表), e.g. [q1, q2] for linear varying
        load_positions: Relative positions 0-1 (荷载位置), e.g. [0, 1] for full span
        group_name: Load group name (荷载组名)
    
add_system_temperatureC
    Apply system temperature load (体系温度/整体升降温荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        temperature: Temperature value (温度变化值,如升温+20,降温-20)
        group_name: Load group name (荷载组名)
    
add_gradient_temperatureB
    Apply gradient temperature load (梯度温度荷载).

    Args:
        element_id: Element ID(s) (单元编号,支持范围字符串)
        case_name: Load case name (荷载工况名)
        temperature: Temperature difference (温差)
        section_oriental: Section direction, beams only (截面方向,仅梁单元):
            0=section Y (截面Y向, default), 1=section Z (截面Z向)
        element_type: Element type (单元类型): 1=beam(梁), 2=plate(板)
        group_name: Load group name (荷载组名)
    
add_custom_temperatureB
    Apply custom temperature load (自定义温度荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        orientation: Direction of temperature change (温度方向, 1=Y向, 2=Z向)
        temperature_data: Custom temperature points [[distance, temp_diff], ...] (温度数据点)
        group_name: Load group name (荷载组名)
    
add_beam_section_temperatureC
    Apply beam section temperature load (梁截面温度荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        code_index: Code index (规范号)
        sec_type: Section type (截面类型, 如1为箱梁等)
        t1: Temperature difference param 1 (各部位温差参数1)
        t2: Temperature difference param 2 (各部位温差参数2)
        t3: Temperature difference param 3 (各部位温差参数3)
        t4: Temperature difference param 4 (各部位温差参数4)
        thick: Thickness parameter (厚度参数)
        group_name: Load group name (荷载组名)
    
add_initial_tension_loadC
    Apply initial tension load (初拉力荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        tension: Tension force (拉力值)
        tension_type: Type of tension (初拉力类型)
        application_type: Application type (施加方式)
        stiffness: Stiffness reduction (刚度参数)
        group_name: Load group name (荷载组名)
    
add_cable_length_loadC
    Apply cable length adjustment load (索长误差荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        length: Length difference (长度误差量)
        tension_type: Tension type (拉力类型)
        group_name: Load group name (荷载组名)
    
add_plate_element_loadC
    Apply plate element load (板单元面上荷载).

    Args:
        element_id: Element ID(s) (单元编号)
        case_name: Load case name (荷载工况名)
        load_type: Load type (荷载类型)
        load_place: Application place (施加位置)
        coord_system: Coordinate system (坐标系: 3为整体)
        list_load: Load values (荷载值)
        list_xy: Location coords (位置坐标)
        group_name: Load group name (荷载组名)
    
add_distribute_plane_loadC
    Apply arbitrary distributed plane load (任意分布面荷载).

    Args:
        index: Load ID (编号)
        case_name: Load case name (荷载工况名)
        type_name: Load type name (分布面荷载类型名)
        point1: 1st point defining the plane [x,y,z] (定义面的点1)
        point2: 2nd point defining the plane [x,y,z] (定义面的点2)
        point3: 3rd point defining the plane [x,y,z] (定义面的点3)
        plate_ids: Optional plate elements to load (指定板单元)
        coord_system: Coordinate system (坐标系)
        group_name: Load group name (荷载组名)
    
add_support_settlementB
    Apply support settlement / nodal displacement load (支座沉降/节点强制位移).

    Args:
        node_id: Node ID(s) (节点编号)
        case_name: Load case name (荷载工况名)
        dz: Settlement in Z direction (Z向沉降量/下沉为负值)
        dx: Displacement in X direction (X向强制位移)
        dy: Displacement in Y direction (Y向强制位移)
        rx: Rotation around X axis (绕X轴强制转角)
        ry: Rotation around Y axis (绕Y轴强制转角)
        rz: Rotation around Z axis (绕Z轴强制转角)
        group_name: Load group name (荷载组名)
    
add_nodal_massB
    Add nodal mass for dynamic analysis (添加节点质量).

    Args:
        node_id: Node ID(s) (节点编号)
        mass_x: Mass in X direction (X向质量)
        mass_y: Mass in Y direction (Y向质量)
        mass_z: Mass in Z direction (Z向质量)
        mass_rm: Rotational mass (转动质量)
    
add_load_to_massA
    Convert a load case to mass for dynamic analysis (将荷载转换为质量).

    Args:
        name: Load case name to convert (要转换为质量的荷载工况名称)
        factor: Conversion factor (转换系数,通常取1.0)
    
add_spectrum_functionA
    Add response spectrum function (添加反应谱函数).

    Args:
        name: Function name (函数名称)
        factor: Scale factor (比例系数)
        kind: Type of spectrum (反应谱类型, 例如中国规范等)
        function_info: User defined spectrum points [[period, value], ...] (自定义谱数据)
    
add_spectrum_caseB
    Add response spectrum load case (添加反应谱工况).

    Args:
        name: Case name (工况名称)
        description: Description (描述)
        kind: Combination method (组合方法, SRSS/CQC等)
        info_x: X direction info [function_name, factor] (X向配置 [谱函数名, 系数])
        info_y: Y direction info [function_name, factor] (Y向配置)
        info_z: Z direction info [function_name, factor] (Z向配置)
    
add_time_history_functionC
    Add time history function (添加时程函数).

    Args:
        name: Function name (函数名称)
        factor: Scale factor (比例系数)
        kind: Type (类型)
        function_info: Time history points [[time, value], ...] (时程数据点)
    
add_time_history_caseB
    Add time history analysis case (添加时程分析工况).

    Args:
        name: Case name (工况名称)
        duration: Total duration in seconds (总时长)
        time_step: Output time step in seconds (输出步长)
        description: Description (描述)
        index: ID index (编号)
    
update_bulking_settingB
    Configure buckling analysis settings (屈曲分析设定).

    Args:
        do_analysis: Enable buckling analysis (是否进行屈曲分析)
        mode_count: Number of modes to calculate (计算模态数)
        stage_id: Construction stage ID for base state, -1 for base model (施工阶段号)
    
add_construction_stageB
    Add a construction stage (添加施工阶段).

    Args:
        name: Stage name (施工阶段名称)
        duration: Stage duration in days (时长,单位:天)
        active_structures: Activated structure groups (激活结构组):
                           [[group_name, age, install_method, weight_stage_id], ...]
                           install_method: 1=deformation, 2=unstressed, 3=tangent, 4=tangent
                           (安装方法: 1=变形法, 2=无应力法, 3=接线法, 4=切线法)
        active_boundaries: Activated boundary groups (激活边界组):
                           [[group_name, position], ...], position: 0=before, 1=after deformation
        active_loads: Activated load groups (激活荷载组):
                      [[group_name, time], ...], time: 0=start, 1=end
    
configure_analysisA
    Configure analysis settings (配置分析设置).

    Args:
        do_construction_stage: Enable construction stage analysis (是否进行施工阶段分析)
        do_creep: Enable creep analysis (是否进行徐变分析)
        do_vibration: Enable self-vibration analysis (是否进行自振分析)
        vibration_modes: Number of vibration modes (振型数量)
        solver_type: Solver type (求解器): 0=sparse matrix, 1=variable bandwidth
                     0=稀疏矩阵, 1=变带宽
    
run_analysisA
    Run the structural analysis calculation (执行结构分析计算).

    Use this after all loads, boundaries, and analysis settings are configured.
    Solving can take a long time; it runs in a worker thread so the connection
    stays responsive, with periodic progress heartbeats.
    求解可能耗时较长,在工作线程中执行以保持连接不阻塞,并周期性上报进度。

    Args:
        read_timeout: Max total solve time in seconds, default 3600
                      (求解总时限秒数;超时抛错,求解本身在后台继续)
    
validate_modelA
    Validate the current model for common issues before running analysis
    (验证模型,在运行分析前检查常见问题).

    Checks for:
    - Missing nodes/elements/materials (缺失的节点/单元/材料)
    - Overlapping nodes (重合节点)
    - Overlapping elements (重合单元)
    
get_model_infoA
    Get a summary of the current bridge model (获取当前桥梁模型概要信息).

    Returns counts of all model entities: nodes, elements, materials,
    sections, construction stages, load cases, etc.
    返回所有模型实体的数量统计。
    
get_analysis_resultsA
    Get analysis results from the bridge model (获取分析结果).

    Args:
        result_type: Type of result to retrieve (结果类型):
            'deformation' (变形), 'force' (内力), 'stress' (应力), 'reaction' (反力)
        ids: Node/Element IDs to query (查询的节点/单元编号)
        stage_id: Construction stage (施工阶段): -1=operation(运营), 0=envelope(包络),
                  n=stage n (第n阶段)
        case_name: Load case name for operation stage (运营阶段荷载工况名).
                   For stage_id=-1, the tool automatically adds "ST:" prefix if missing.
                   (运营阶段查询时工具会自动添加 "ST:" 前缀)
        limit: Max items per page, default 100 (单页条数上限)
        offset: Pagination offset (翻页偏移)

    Returns:
        Deformation results (变形): List of dicts with keys
            {node_id, dx, dy, dz, rx, ry, rz} (lowercase, in meters/radians)
        Force results (内力): List of dicts with keys
            {element_id, force_i: {Fx, Fy, Fz, Mx, My, Mz}, force_j: {...}}
            (nested structure, forces in kN, moments in kN·m)
        Stress/Reaction: Similar nested dict structures
    
create_structure_groupA
    Create a structure group and optionally assign elements to it (创建结构组).

    Structure groups are used to control which elements are active during
    each construction stage (施工阶段分析中控制单元激活状态).

    Args:
        name: Structure group name (结构组名称)
        element_ids: Element IDs to add, int list or range string like '1to20'
                     (单元编号列表或范围字符串,如 '1to20')
    
update_structure_group_nameA
    Rename an existing structure group (重命名结构组).

    Args:
        name: Current structure group name (当前结构组名称)
        new_name: New structure group name (新结构组名称)
    
remove_structure_groupA
    Remove a structure group (删除结构组).
    If no name is provided, removes all structure groups.

    Args:
        name: Name of the structure group to remove, leave empty to remove all (待删除的结构组名称,不填则删除全部)
    
create_boundary_groupA
    Create a boundary condition group (创建边界组).

    Boundary groups collect supports/links to be activated or deactivated
    together during construction stages (施工阶段中统一控制边界条件激活状态).

    Args:
        name: Boundary group name (边界组名称)
    
list_group_membersA
    List members of a structure/boundary/load group (查看分组的成员信息).

    Args:
        group_type: Type of group (分组类型): 'structure', 'boundary', 'load'
        name: Group name (分组名称)
    
add_elements_to_groupA
    Add elements to an existing structure group (向已有结构组添加单元).

    Args:
        group_name: Structure group name (结构组名称)
        element_ids: Element IDs to add (单元编号,支持列表或范围字符串 '1to20')
    
merge_operation_stageA
    Merge all construction stages into a final operation stage (合并为运营阶段).

    This finalizes the construction stage analysis by creating an operation
    stage that accumulates all previous stage results.
    通过合并所有施工阶段创建运营阶段,作为施工阶段分析的最终状态。

    Args:
        name: Name for the merged operation stage (运营阶段名称)
    
remove_construction_stageA
    Remove a construction stage (删除施工阶段).

    Args:
        name: Name of the stage to remove. If empty, removes all stages.
              (要删除的施工阶段名称。如果为空,则删除所有施工阶段)
    
update_construction_stageA
    Update an existing construction stage (修改施工阶段).

    Used to activate/deactivate structure groups, boundaries, and loads
    in a specific construction stage.
    (用于在特定施工阶段激活/钝化结构组、边界条件和荷载)

    Args:
        name: Existing stage name (现有阶段名称)
        new_name: New stage name (新名称)
        duration: Stage duration in days (阶段时长,天)
        active_structures: Structures to activate [[name, age, mat_id, time_param_id], ...]
                           (激活的结构组信息 [[名称, 材龄, 材料号, 时间参数号], ...])
        delete_structures: Structure group names to deactivate (钝化的结构组名称列表)
        active_boundaries: Boundaries to activate [[name, position], ...]
                           (激活的边界组信息 [[名称, 位置], ...])
        delete_boundaries: Boundary group names to deactivate (钝化的边界组名称列表)
        active_loads: Loads to activate [[name, day], ...] (激活的荷载组信息 [[名称, 天数], ...])
        delete_loads: Loads to deactivate [[name, day], ...] (钝化的荷载组信息 [[名称, 天数], ...])
        temp_loads: Temporary load group names (临时荷载组名称列表)
    
switch_display_stageB
    Switch the view to a specific construction stage (切换显示阶段).

    Updates the software UI to display the model at the specified stage.
    (更新软件界面,显示指定施工阶段的模型状态)

    Args:
        stage_name: Name of the stage to display (要显示的阶段名称)
    
create_tendon_propertyA
    Create a tendon property definition (创建钢束特性).

    Args:
        name: Tendon property name (钢束特性名)
        material_name: Prestress steel material name, must exist
                       (钢材材料名,须已通过 create_material 创建)
        tendon_type: Tendon type (钢束类型): 0=pre-tension(先张),
                     1=post-tension(后张), 2=external(体外)
        duct_type: Duct type (孔道类型): 1=金属波纹管, 2=塑料波纹管,
                   3=铁皮管, 4=钢管, 5=抽芯成型
        steel_type: Steel type (钢材类型): 1=钢绞线(strand), 2=螺纹钢筋(threaded bar)
        area: Tendon area in m² (钢束面积), e.g. 0.00139 for 10Φ15.2 strands
        duct_diameter: Duct diameter in m (孔道直径)
        friction: Friction coefficient μ (摩阻系数), typically 0.20~0.30
        deviation: Wobble coefficient k (偏差系数), typically 0.0015
        anchorage_slip: Anchorage slip at each end in m (锚固滑移,两端相同), typ. 0.006
        steel_detail: Advanced override, raw qtmodel steel_detail list
                      (高级用法:直接给出原始 steel_detail 列表,覆盖上述四个参数;
                      钢绞线=[面积,孔道直径,摩阻,偏差],
                      螺纹钢筋=[直径,面积,孔道直径,摩阻,偏差,张拉方式])
    
create_tendon_2dA
    Create a 2D tendon defined by profile control points (创建2D钢束/平弯钢束).

    The tendon profile lies in the X-Z plane; each control point is
    [x, z, r] where r is the fillet radius (0 for sharp points).
    钢束线形位于XZ平面,控制点为 [x, z, r],r为圆弧半径(0为折点)。

    Args:
        name: Tendon name (钢束名称)
        property_name: Tendon property name, must exist (钢束特性名,须已创建)
        control_points: Profile control points [[x, z, r], ...]
                        (控制点信息 [[x, z, 半径r], ...])
        point_insert: Insertion point [x, y, z] for straight positioning
                      (直线定位时的插入点坐标 [x, y, z])
        num: Number of tendons (根数)
        line_type: Point type (线型): 1=导线点(guide), 2=折线点(polyline)
        position_type: Positioning (定位方式): 1=straight(直线), 2=track line(轨迹线)
        symmetry: Symmetry point (对称点): 0=left end(左端), 1=right end(右端),
                  2=asymmetric(不对称)
        group_name: Tendon group name (钢束组名)

    Example:
        create_tendon_2d(name="T1", property_name="15-10",
                         control_points=[[0, -0.5, 0], [20, -1.2, 8], [40, -0.5, 0]],
                         point_insert=[0, 0, 0])
    
apply_prestressB
    Apply prestress force to tendon(s) (施加预应力).

    Args:
        case_name: Load case name for the prestress (预应力荷载工况名)
        tendon_name: Tendon name or list of tendon names (钢束名称或名称列表)
        force: Prestress force in N (预应力张拉力,单位N), e.g. 3000000 = 3000kN
        tension_type: Tension end (张拉方式): 0=start(始端), 1=end(末端), 2=both(两端)
        group_name: Load group name (荷载组名)
    
get_tendon_infoA
    Get tendon geometry and prestress loss results (获取钢束信息与损失结果).

    Args:
        tendon_name: Specific tendon name, or empty string for all tendons
                     (钢束名称,空字符串则返回所有钢束)
    
add_tendon_3dA
    Add a 3D tendon (添加三维钢束/空间钢束).

    Args:
        name: Tendon name (钢束名称)
        property_name: Tendon property name, must exist (钢束特性名,须已创建)
        control_points: 3D control points [[x, y, z, r], ...], r = fillet radius
                        (三维控制点 [[x, y, z, 半径r], ...])
        point_insert: Insertion point [x, y, z] for straight positioning
                      (直线定位时的插入点坐标)
        num: Number of tendons (钢束根数)
        line_type: Point type (线型): 1=导线点(guide), 2=折线点(polyline)
        position_type: Positioning (定位方式): 1=straight(直线), 2=track line(轨迹线)
        group_name: Tendon group name (钢束组名)
    
assign_tendon_elementsC
    Assign elements to a tendon (为钢束分配单元).

    Args:
        ids: Element IDs (单元编号)
    
get_tendon_loss_resultsB
    Get tendon prestress loss results (获取预应力损失结果).

    Args:
        name: Tendon name (钢束名)
        stage_id: Construction stage ID (施工阶段编号)
    
get_tendon_position_resultB
    Get tendon position/coordinate results (获取钢束坐标结果).

    Args:
        name: Tendon name (钢束名)
    
get_tendon_length_resultA

Get all tendon length results (获取所有钢束长度结果).

add_elastic_linkA
    Add an elastic link between two nodes (添加弹性连接).

    Elastic links model connections like bearings between members.
    弹性连接用于模拟支座等节点间的连接关系。

    Args:
        start_node_id: Start node ID (起始节点编号)
        end_node_id: End node ID (终止节点编号)
        link_type: Link type (连接类型):
            1=General elastic (一般弹性连接), 2=Rigid (刚性连接),
            3=Tension-only (受拉弹性连接), 4=Compression-only (受压弹性连接)
        stiffness_values: Stiffness [kx, ky, kz, krx, kry, krz], ONLY for type=1
                          (刚度值列表,仅一般弹性连接需要)
        kx: Axial stiffness for tension/compression links, ONLY for type=3/4
            (受拉或受压刚度,仅受拉/受压连接需要)
        gap: Gap for tension/compression links (间隙)
        friction: Friction coefficient (摩擦系数)
        beta_angle: Beta angle in degrees (贝塔角)
        dis_ratio: Distance ratio from I-end, ONLY for type=1 (距i端距离比)
        group_name: Boundary group name (边界组名)

    Example:
        add_elastic_link(1, 2, link_type=1, stiffness_values=[1e6,1e6,1e6,0,0,0])
        add_elastic_link(1, 2, link_type=3, kx=1e6)  # tension-only
    
add_master_slave_linkA
    Add master-slave constraint (rigid link) between nodes (添加主从约束/刚域).

    Used to model rigid connections where slave nodes follow the motion
    of the master node (typically for diaphragm rigid zones).
    用于模拟刚域,从节点跟随主节点运动(典型应用:隔板刚域)。

    Args:
        master_node_id: Master node ID (主节点编号)
        slave_node_ids: Slave node ID(s), list or range string like "2to5"
                        (从节点编号,支持列表或范围字符串)
        dof_constraints: DOF flags [dx, dy, dz, rx, ry, rz],
                         True=constrained, default all constrained
                         (自由度约束标志,True=约束,默认全部约束)
        group_name: Boundary group name (边界组名)
    
add_elastic_supportA
    Add elastic spring supports on nodes (添加弹性支承/弹簧支座).

    Models foundation flexibility, pile caps, or rubber bearing stiffness.
    用于模拟地基柔度、桩基础、橡胶支座刚度等。

    Args:
        node_id: Node ID(s), list or range string (节点编号)
        spring_values: Stiffness values, meaning depends on support_type
                       (刚度信息,含义随支承类型不同):
            type=1 (linear 线性): [kx, ky, kz, krx, kry, krz] in N/m, N·m/rad
            type=2/3 (tension/compression 受拉/受压): [direction, stiffness],
                      direction: 1=X, 2=Y, 3=Z
        support_type: Support type (支承类型): 1=linear(线性),
                      2=tension-only(受拉), 3=compression-only(受压)
        group_name: Boundary group name (边界组名)

    Example:
        add_elastic_support(1, spring_values=[1e6,0,1e6,0,0,0])           # linear
        add_elastic_support(1, spring_values=[3, 1e6], support_type=3)    # Z compression-only
    
add_beam_constraintA
    Set beam end releases / constraints (设置梁端约束/铰接释放).

    Controls which DOFs are released at each end of a beam element.
    True = released (free), False = fixed (constrained).
    用于控制梁单元两端的自由度释放,True=释放(铰接), False=固接。

    Common use: releasing rotation at one end to create a pin connection.
    常见用法:释放一端转动自由度以创建铰接。

    Args:
        beam_id: Beam element ID (梁单元编号)
        release_i: DOF releases at I-end [dx, dy, dz, rx, ry, rz]
                   (I端自由度释放,True=释放)
        release_j: DOF releases at J-end [dx, dy, dz, rx, ry, rz]
                   (J端自由度释放,True=释放)
        group_name: Boundary group name (边界组名)

    Example:
        add_beam_constraint(1, release_i=[False,False,False,False,True,False])
        # Release My rotation at I-end (I端释放绕Y轴转动=铰接)
    
add_constraint_equationA
    Add a constraint equation between node DOFs (添加约束方程).

    Establishes a linear relationship between a slave DOF and one or more
    master DOFs: slave_dof = Σ(coefficient × master_dof).
    建立从属自由度与主自由度之间的线性约束关系。

    Args:
        name: Constraint equation name (约束方程名称)
        slave_node: Slave node ID (从节点编号)
        slave_dof: Slave DOF index 1-6 (从节点自由度: 1=Dx,2=Dy,3=Dz,4=Rx,5=Ry,6=Rz)
        master_info: List of master DOF definitions [[node_id, dof, coefficient], ...]
                     (主自由度信息 [[节点号, 自由度号, 系数], ...])
        group_name: Boundary group name (边界组名)

    Example:
        add_constraint_equation("CE1", slave_node=5, slave_dof=3,
                                master_info=[[1, 3, 1.0], [2, 3, 0.5]])
        # Node 5 Dz = 1.0 * Node1_Dz + 0.5 * Node2_Dz
    
remove_boundaryA
    Remove a specific boundary condition (删除指定边界条件).

    Args:
        remove_id: Node or element ID to remove boundary from
                   (节点号/单元号/从节点号,取决于边界类型)
        kind: Boundary type to remove (边界类型), English token or Chinese:
            "support" (一般支承), "elastic_support" (弹性支承),
            "general_elastic_support" (一般弹性支承),
            "elastic_link" (一般弹性连接), "tension_elastic_link" (受拉弹性连接),
            "compression_elastic_link" (受压弹性连接), "rigid_elastic_link" (刚性弹性连接),
            "master_slave" (主从约束), "beam_constraint" (梁端约束),
            "constraint_equation" (约束方程)
        group_name: Boundary group name (边界组名)
        extra_name: Extra identifier (额外标识):
            for elastic links: "I" or "J" end (弹性连接时为I/J端);
            for constraint equations: the equation name (约束方程时为方程名)
    
save_model_screenshotA
    Capture a screenshot of the current bridge model view (截取桥梁模型视图).

    By default returns the image itself so it can be viewed directly.
    默认直接返回图像内容,可在客户端预览。

    Args:
        file_path: Output file path (.png). If empty, saves to default directory.
                   输出路径(.png格式),为空则保存到默认目录
        view_angle: View preset (视角预设): 'iso'(空间视图), 'front'(前视),
            'side'(左视), 'top'(俯视), 'right'(右视), 'back'(后视), 'bottom'(仰视),
            or 'current' to keep the current view (保持当前视角)
        return_image: Return the PNG as viewable image content; if False, return
                      only the saved path (是否直接返回图像内容,否则仅返回路径)
    
plot_analysis_resultA
    Generate an analysis result contour plot (生成分析结果云图).

    By default returns the plot image itself for direct viewing.
    默认直接返回云图图像内容,可在客户端预览。

    Args:
        result_type: Result type (结果类型):
            'displacement'(位移), 'reaction'(反力),
            'beam_force'(梁内力), 'beam_stress'(梁应力),
            'truss_force'(杆内力), 'truss_stress'(杆应力),
            'plate_force'(板内力), 'plate_stress'(板应力),
            'modal'(振型)
        stage_id: Construction stage ID (施工阶段ID):
            -1=operation(运营), 0=envelope(包络), n=stage n (第n阶段)
        case_name: Load case name for operation stage (运营阶段荷载工况名)
        component: Result component to display (显示分量), e.g.
            'uy'(竖向位移), 'mz'(弯矩), 'fx'(轴力), 'sz'(正应力)
            Leave empty to use default component.
        file_path: Output file path (.png). Empty = default directory.
                   输出路径,为空则保存到默认目录
        return_image: Return the PNG as viewable image content; if False, return
                      only the saved path (是否直接返回图像内容,否则仅返回路径)
    
set_view_angleA
    Set the 3D view angle of the bridge model (设置三维视角).

    Args:
        angle_preset: View preset (视角预设): 'iso'(空间视图), 'front'(前视图),
            'side'(左视图), 'top'(俯视图), 'right'(右视图), 'back'(后视图),
            'bottom'(仰视图). Set to 'custom' to use horizontal/vertical rotation.
        horizontal: Horizontal rotation in degrees, for 'custom' (水平旋转角,度)
        vertical: Vertical rotation in degrees, for 'custom' (垂直旋转角,度)
    
display_idsA
    Toggle the display of node and element IDs (开关节点和单元编号显示).

    Args:
        node_id: True to show node IDs, False to hide (显示节点号)
        element_id: True to show element IDs, False to hide (显示单元号)
    
activate_structureC
    Activate only specific nodes/elements for display (仅激活显示指定节点/单元).

    Args:
        node_ids: Node IDs to activate (要激活的节点号)
        element_ids: Element IDs to activate (要激活的单元号)
    
set_renderA
    Toggle solid rendering mode (开关实体渲染模式).

    Args:
        flag: True for rendered view, False for wireframe (是否渲染)
    
reset_displayB

Reset display view (恢复默认显示/全显).

set_unitA
    Set display units (设置显示单位).

    Args:
        unit_force: Force unit (力单位, 例如: KN, N, TONF)
        unit_length: Length unit (长度单位, 例如: M, MM, CM)
    
change_construct_stageA
    Change current construction stage in view (切换当前显示的施工阶段).

    Args:
        stage: Stage ID, 0 for Base stage (施工阶段号,0为成桥阶段)
    
add_node_tandemA
    Define a node tandem — the node path a moving load travels along
    (添加节点纵列,移动荷载行进经过的节点序列).

    This is STEP 1 of the moving load workflow:
    add_node_tandem → add_influence_plane → add_traffic_lane
    → add_standard_vehicle → create_live_load_case

    Args:
        name: Tandem name (节点纵列名, e.g. "节点纵列1")
        node_ids: Node IDs along the girder, list or range string like "1to101"
                  (节点列表,支持 XtoY 范围字符串)
        order_by_x: Auto-sort nodes by X coordinate ascending (按X坐标自动排序)
    
add_influence_planeA
    Define an influence plane from node tandems (添加影响面).

    STEP 2 of the moving load workflow. The influence plane is built
    from one or more node tandems and is required by lanes and load cases.

    Args:
        name: Influence plane name (影响面名称, e.g. "影响面1")
        tandem_names: Node tandem names (节点纵列名称列表)
    
add_traffic_laneA
    Define a traffic lane line for moving load analysis (添加车道线).

    STEP 3 of the moving load workflow. Requires an influence plane
    and a node tandem created beforehand.

    Args:
        name: Lane name (车道线名称, e.g. "车道1")
        influence_name: Influence plane name (影响面名称)
        tandem_name: Node tandem name (节点纵列名)
        offset: Lateral offset from the tandem in meters (横向偏移,单位m)
        lane_width: Lane width in meters (车道宽度,单位m), typical 3.1~3.75
        optimize: Allow vehicle lateral wandering (是否允许车辆摆动)
        direction: Travel direction (行车方向): 0=forward(向前), 1=backward(向后)
    
add_standard_vehicleA
    Add a standard vehicle load from a design code database (添加标准车辆荷载).

    STEP 4 of the moving load workflow.

    Args:
        name: Vehicle name (车辆荷载名称)
        standard_code: Design code (荷载规范):
            1=铁路桥涵规范 TB10002-2017, 2=城市桥梁 CJJ11-2019,
            3=公路工程技术标准 JTJ 001-97, 4=公路桥涵通规 JTG D60-2004,
            5=公路桥涵通规 JTG D60-2015, 6=城市轨道交通 GB/T51234-2017,
            7=市域铁路 T/CRS C0101-2017
        load_type: Load type name exactly as shown in the QiaoTong UI
                   (荷载类型,与软件界面名称一致), e.g. "公路I级车道" (公路通规),
                   "ZK高速铁路" (铁路规范 TB10002-2017)
        load_length: Load length limit, 0 = unlimited (荷载长度限制,铁路规范参数)
        factor: Load factor (荷载系数,铁路 ZH 荷载参数)
    
create_live_load_caseA
    Create a moving live load case (创建活载工况).

    FINAL STEP of the moving load workflow. The analysis engine finds the
    worst-case vehicle positions for envelope results
    (分析引擎自动计算最不利车辆位置得到包络效应).

    Args:
        name: Load case name (活载工况名)
        influence_plane: Influence plane name (影响面名称)
        span: Bridge span in meters (跨度,单位m)
        sub_cases: Sub-case list, each item [vehicle_name, factor, [lane names...]]
                   (子工况信息 [[车辆名, 系数, [车道名...]], ...])

    Example:
        create_live_load_case(name="活载工况1", influence_plane="影响面1", span=100,
                              sub_cases=[["公路I级", 1.0, ["车道1", "车道2"]]])
    
get_live_load_resultsA
    Get moving load analysis results (获取移动荷载分析结果).

    Returns envelope (maximum and minimum) results for specified elements.
    返回指定单元的移动荷载包络结果(最大值和最小值)。

    Args:
        case_name: Live load case name (活载工况名)
        result_type: Result type (结果类型): 'force'(内力), 'stress'(应力), 'deformation'(变形)
        element_ids: Element or node IDs to query (查询的单元或节点编号)
    
setup_concrete_checkA
    Create a concrete structural check case (创建混凝土检算工况).

    Args:
        name: Check case name (检算工况名称)
        standard: Design code (检算规范):
            1=JTG 3362-2018 (公路规范), 2=TB 10092-2017 (铁路规范)
        structure_type: Structural category (结构类型):
            1=钢筋混凝土 (RC), 2=B类预应力构件, 3=A类预应力构件, 4=全预应力构件
        group_name: Structure group name to check (检算的结构组名)
    
add_check_load_combinationA
    Add a load combination for structural checking (添加检算荷载组合).

    Args:
        name: Combination name (组合名称)
        standard: Code standard (规范): 1=JTG D60-2015, 2=TB 2017
        kind: Combination type (组合类型):
            Highway JTG D60: 1=基本组合, 2=偶然组合, 3=标准值组合,
                             4=频遇组合, 5=准永久组合, 6=疲劳组合, 7=临时组合
            Railway TB 2017: 1=主力组合, 2=主加附组合, 3=主加特殊组合, 4=临时组合
        load_case_factors: Load case factors list, format:
                           [[case_name, unfavorable_factor, favorable_factor], ...]
                           荷载工况系数 [[工况名, 不利系数, 有利系数], ...]
        combine_method: Combination method (组合方式): 1=相加并判别, 2=包络
    
run_concrete_checkA
    Execute concrete structural checking analysis (运行混凝土检算).

    Syncs the named check case into the current check data, then runs the
    code-based verification and waits for the background task to finish.
    先将指定检算工况同步为当前检算数据,再运行规范验算并等待后台任务完成。

    Args:
        name: Check case name to run (要运行的检算工况名)
        max_wait_seconds: Max seconds to wait for completion; None = no limit
                          (最长等待秒数,None 表示不限时)
    
add_parametric_reinforcementA
    Add parametric reinforcement to a concrete section (添加参数化配筋).

    Args:
        section_id: Section ID (截面ID)
        position: Section end (截面位置): 0=I端 (start), 1=J端 (end)
        has_outer: Has outer reinforcement (是否有外部钢筋)
        has_inner: Has inner reinforcement (是否有内部钢筋)
        outer_rebar_info: Outer rebar list (外部钢筋信息):
                          [[diameter, material_id, cover, spacing_or_count, bars_per_bundle], ...]
                          [[直径mm, 材料号, 层边距m, 间距m/数量, 每束根数], ...]
        inner_rebar_info: Inner rebar list (内部钢筋信息), same format as outer
    
add_check_stirrupA
    Add a stirrup definition for checking (添加检算箍筋定义).

    Args:
        stirrup_id: Stirrup definition ID (箍筋定义编号)
        name: Stirrup definition name (箍筋定义名称)
        stirrup_type: Stirrup type (箍筋类型): 1=普通箍筋 (normal), 2=螺旋式箍筋 (spiral)
        material_id: Rebar material ID (钢筋材料号)
        limbs_number: Number of limbs, for normal stirrups (普通箍筋肢数)
        loops_number: Number of loops, for spiral stirrups (螺旋式箍筋环数)
        diameter: Stirrup diameter in meters (箍筋直径, 单位 m, 如 0.020 = 20mm)
        spacing: Stirrup spacing in meters (箍筋间距, 单位 m)
        core_diameter: Core diameter for spiral stirrups in meters
                       (螺旋式箍筋核心直径, 单位 m, 仅螺旋箍筋使用)
    
update_vertical_steel_tendonA
    Update vertical prestress tendon parameters for checking (修改竖向预应力钢束参数).

    Args:
        limbs_number: Number of vertical limbs/strands (竖向预应力肢数)
        area: Area of a single limb in m^2 (单肢面积, 单位 m², 如 0.000804 = 804mm²)
        spacing: Longitudinal spacing in meters (钢束间距, 单位 m)
        effective_prestress: Effective prestress in Pa (有效预应力, 单位 Pa, 8e8 = 800MPa)
        fpd: Design tensile strength in Pa (强度设计值 fpd, 单位 Pa, 9e8 = 900MPa)
    
get_check_dataA
    Query concrete-check data by kind (按类型查询混凝土检算数据).

    Read-only. Requires a check case to be open/imported first.
    只读工具;需先创建或打开检算工况。列表结果分页返回。

    Args:
        kind: What to query (查询类型):
            ── 结果 Results ──
            "stress" (应力信息, 可选 stress_type/name),
            "solve_status" (检算求解状态)
            ── 工况 Case ──
            "case" (检算工况, 可选 name), "basic_info" (检算基本信息),
            "materials" (材料信息), "load_table" (荷载表, 可选 combine_type/name),
            "section_property" (截面特性), "element_table" (单元表)
            ── 配筋 Reinforcement ──
            "reinforcement" (配筋数据), "stirrups" (箍筋定义),
            "shear_stirrup" (单元抗剪箍筋, 可选 element_id),
            "torsion_stirrup" (单元抗扭箍筋, 可选 element_id),
            "vertical_prestress" (竖向预应力), "tendon_section" (钢束截面)
            ── 分析设置 Analysis settings ──
            "normal_section_bearing_setting" (正截面承载力),
            "oblique_shear_bearing_setting" (斜截面抗剪承载力),
            "limit_state_setting" (极限状态法), "normal_stress_setting" (正应力),
            "crack_width_setting" (裂缝宽度), "moment_curvature_setting" (弯矩曲率),
            "bearing_curve_setting" (承载力曲线)
        element_id: Element ID for stirrup queries; omit for all (单元号,省略则查全部)
        stress_type: Stress combination type for kind="stress" (应力组合类型):
            非 AASHTO: 1=标准值组合, 2=频遇组合, 3=准永久值组合, 4=主力组合,
                      5=主加附组合, 6=施工组合, 7=主加特殊组合, 8=恒载作用,
                      9=预应力作用, 10~13=使用组合Ⅰ~Ⅳ, 14=永久作用组合
            AASHTO 2020: 1~4=使用组合Ⅰ~Ⅳ, 5=永久作用组合, 6=施工组合
        combine_type: Combination type for kind="load_table" (荷载表组合类型)
        name: Explicit display name; overrides stress_type/combine_type when set
              (指定组合显示名,非空时优先于类型序号)
        limit: Max items per page, default 100, max 500 (单页条数上限)
        offset: Pagination offset (分页偏移)
    
configure_check_analysisA
    Configure a concrete-check analysis setting group (配置混凝土检算分析设置).

    ⚠️ UNITS (单位): parameters in this tool use qtmodel's NATIVE units —
    **mm for lengths and MPa for stresses**, NOT the SI (m/Pa) used elsewhere
    in this server. qtmodel does not document these units; they are inferred
    from its defaults (e.g. protective_thickness=30.0 means 30 mm,
    fatigue_limit_steel_bar=145.0 means 145 MPa). Pass values accordingly.
    本工具参数沿用 qtmodel 原生单位(长度 mm、应力 MPa),与本服务器其余
    工具的 SI 约定不同;qtmodel 未标注单位,此结论由其默认值推断。

    Use get_check_data("<kind>_setting") to read current values first.
    建议先用 get_check_data 读取当前值,再按需覆盖。

    Args:
        kind: Setting group (设置类别):
            "normal_section_bearing" (正截面承载力):
                normal_section_bearing_calculation_type: 1=同比例变化 2=轴力不变
                    3=My不变 4=Mz不变 5=轴力与My不变 6=轴力与Mz不变 7=My与Mz不变
            "oblique_shear_bearing" (斜截面抗剪承载力):
                reinforcement_height_multiple, is_consider_as_simple_support,
                shear_strength_material_factor,
                oblique_section_shear_direction_type: 1=竖向(z) 2=横向(y) 3=双向
            "limit_state" (极限状态法):
                cal_fatigue, fatigue_limit_steel_bar (MPa),
                fatigue_limit_prestress (MPa), is_consider_as_simple_support,
                is_consider_construction_load
            "normal_stress" (正应力):
                aashto2020_normal_stress_rebar_type: 1=直钢筋/无交叉焊缝焊接钢丝网
                    2=高应力区带交叉焊缝的直焊接钢丝网,
                tendon_allowable_stress_amplitude (MPa),
                flange_web_slenderness_ratio,
                construction_stage_concrete_tensile_limit (MPa),
                service_combination3_concrete_tension_limit (MPa)
            "crack_width" (裂缝宽度):
                highway_environment_category_type (1~7 公路环境类别),
                railway_environment_category_type (1~6 铁路环境类别),
                railway_limit_environment_category_type (1~11 铁路限值环境类别),
                crack_setting_type: 1=0 2=0.10 3=0.15 4=0.20 5=0.25 6=禁止使用,
                clear_protective_thickness (mm), protective_thickness (mm),
                steel_bar_type: 1=带肋钢筋 2=光圆钢筋,
                effect_coefficient_type: 1=软件自动计算 2=用户指定,
                user_specified_effect_coefficient, is_epoxy_resin_rebar,
                is_welded_rebar_skeleton, mq_mg (活载/恒载弯矩比), exposure_coefficient
            "moment_curvature" (弯矩曲率):
                moment_curvature_type: 1=轴力P变化 2=弯矩M变化,
                moment_curvature_model_type: 1=双线性模型 2=理想弹塑性模型
            "bearing_curve" (承载力曲线):
                bearing_curve_count (计算点数),
                angle_between_m_and_y_axis (弯矩方向与y轴夹角), force_p (轴力P)
        settings: Parameter dict for the chosen kind; only pass what you change
                  (该类别的参数字典,只需传要修改的项)
    
manage_check_stirrupA
    Update or remove a stirrup definition (修改或删除检算箍筋定义).

    Use add_check_stirrup to create one. Lengths are in METERS (SI), converted
    internally. 新增请用 add_check_stirrup;长度入参为米,内部换算。

    Args:
        action: "update" (修改) or "remove" (删除)
        stirrup_id: Stirrup definition ID (箍筋定义编号); <=0 means match by name
        name: Stirrup definition name (箍筋定义名称)
        stirrup_type: 1=普通箍筋 (normal), 2=螺旋式箍筋 (spiral)
        material_id: Rebar material ID (钢筋材料号)
        limbs_number: Limbs, for normal stirrups (普通箍筋肢数)
        loops_number: Loops, for spiral stirrups (螺旋式箍筋环数)
        diameter: Stirrup diameter in meters (箍筋直径, 单位 m)
        spacing: Stirrup spacing in meters (箍筋间距, 单位 m)
        core_diameter: Spiral core diameter in meters (螺旋箍筋核心直径, 单位 m)
    
assign_element_stirrupA
    Assign or remove element stirrups (指定或删除单元箍筋).

    Stirrup numbers refer to definitions created by add_check_stirrup.
    箍筋号引用 add_check_stirrup 创建的箍筋定义。

    Args:
        action: "shear" (抗剪箍筋), "torsion" (抗扭箍筋), or "remove" (删除)
        element_id: Element ID (单元号); for "remove", <=0 removes all elements
        stirrup_i_y: I-end vertical stirrup ID, shear only (I端竖向箍筋号)
        stirrup_i_x: I-end transverse stirrup ID, shear only (I端横向箍筋号)
        stirrup_j_y: J-end vertical stirrup ID, shear only (J端竖向箍筋号)
        stirrup_j_x: J-end transverse stirrup ID, shear only (J端横向箍筋号)
        stirrup_i: I-end stirrup ID, torsion only (I端抗扭箍筋号)
        stirrup_j: J-end stirrup ID, torsion only (J端抗扭箍筋号)
    
manage_check_case_fileA
    Open or save a concrete check case file (打��或保存混凝土检算工况文件).

    Args:
        action: "open" (打开) or "save" (保存)
        name: Check case name; for "open", resolves to the default check data
              directory when file_path is empty (工况名称)
        file_path: Full path to the case file. For "open" it takes priority over
                   name; for "save" a non-empty value means save-as
                   (工况文件完整路径;保存时非空表示另存为)
    
create_simple_beam_bridgeA
    One-step creation of a simple beam bridge model (一键创建简支梁桥模型).

    Creates nodes, beam elements, supports, and a self-weight load case in
    a single step. The bridge lies along the X-axis.
    一键完成节点、梁单元、支承和自重工况的建立,桥梁沿X轴布置。

    Args:
        span: Span length in meters (跨径,单位m)
        num_elements: Number of beam elements (梁单元划分数量), min 2
        material_name: Material name (material must already exist) (材料名,须已创建)
        section_name: Section name (section must already exist) (截面名,须已创建)
        section_width: Section width in m for auto-creating a rectangle section
                       (矩形截面宽度,单位m,若截面不存在则自动创建)
        section_height: Section height in m (矩形截面高度,单位m)
        self_weight_case: Self-weight load case name (自重工况名)
    
create_continuous_beam_bridgeB
    One-step creation of a continuous beam bridge model (一键创建连续梁桥模型).

    Creates a multi-span continuous beam with fixed supports at piers
    and appropriate end conditions.
    创建多跨连续梁桥,中间支座为固定支承,端部为活动支承。

    Args:
        spans: List of span lengths in meters (各跨跨径列表,单位m),
               e.g. [30.0, 50.0, 30.0] means 3-span (3跨均匀布置)
        num_elements_per_span: Elements per span (每跨单元划分数)
        material_name: Material name (材料名,须已创建)
        section_name: Section name (截面名,须已创建)
        self_weight_case: Self-weight load case name (自重工况名)
    
get_model_dataA
    Query model data by kind (按类型查询模型数据) — the single read tool for
    entities, loads, groups and stages. List results are paginated.

    Args:
        kind: What to query (查询类型):
            ── 实体 Entities ──
            "nodes" (节点, 可选 ids), "elements" (单元, 可选 ids),
            "materials" (材料), "sections" (截面列表),
            "section_detail" (截面详情, 需 sec_id, 可选 position 0=起端 1=末端),
            "section_shape" (截面形状, 需 sec_id),
            "section_property" (截面特性, 需 sec_id),
            "thickness" (板厚), "boundaries" (全部边界条件),
            "node_local_axis" (节点局部坐标), "constraint_equations" (约束方程),
            "effective_widths" (有效宽度), "reinforcement" (配筋数据)
            ── 组 Groups ──
            "structure_groups" (结构组名列表),
            "group_elements" (结构组内单元, 需 name),
            "group_nodes" (结构组内节点, 需 name)
            ── 荷载 Loads ──
            "load_cases" (荷载工况名), "nodal_force_loads" (节点力),
            "nodal_displacement_loads" (节点位移/沉降), "beam_element_loads" (梁单元荷载),
            "plate_element_loads" (板单元荷载), "initial_tension_loads" (初拉力),
            "cable_length_loads" (索长荷载), "pre_stress_loads" (预应力荷载),
            "node_masses" (节点质量), "tendon_properties" (钢束特性),
            "deviation_parameters" (制造偏差参数), "deviation_loads" (制造偏差荷载)
            ── 施工阶段 Stages ──
            "stages" (施工阶段名), "stage_elements" (阶段内单元, 需 stage_id),
            "stage_nodes" (阶段内节点, 需 stage_id), "stage_groups" (阶段内组, 需 stage_id)
        ids: Entity IDs for nodes/elements, int/list/range string "1to10" (编号)
        name: Group name, for group_elements/group_nodes (结构组名)
        sec_id: Section ID, for section_detail/section_shape/section_property (截面号)
        position: Tapered section end, for section_detail (变截面位置 0起/1末)
        stage_id: Stage ID, for stage_* kinds (施工阶段号)
        limit: Max items per page, default 100, max 500 (单页条数上限)
        offset: Skip count for pagination (翻页偏移)
    
find_entitiesA
    Locate nodes/elements by coordinates or attributes (按坐标或属性定位节点/单元).

    Args:
        by: Search mode (查找方式):
            "node_at_point" (按坐标找节点, 需 x/y/z, 可选 tolerance),
            "elements_at_point" (按坐标找单元, 需 x/y/z, 可选 tolerance),
            "elements_by_material" (按材料名找单元, 需 name),
            "elements_by_section" (按截面号找单元, 需 index),
            "element_type" (查单元类型, 需 ids),
            "element_weight" (查单元重量, 需 ids),
            "span_supports" (跨径支承信息, 需 span_info_name),
            "span_elements" (跨径单元信息, 需 span_info_name)
        x, y, z: Coordinates for point search (坐标)
        tolerance: Search tolerance (容差)
        name: Material name (材料名)
        index: Section ID (截面号)
        ids: Element IDs (单元编号)
        span_info_name: Span info name (跨径信息名)
        limit: Max items per page (单页条数上限)
        offset: Pagination offset (翻页偏移)
    
calc_section_propertyA
    Compute section properties from raw geometry, without creating a section
    (按几何直接计算截面特性,不创建截面).

    Provide EXACTLY ONE of:
        loop_segments: Polygon loops [{"main": [[x,y],...], "sub": ...}, ...]
                       (多边形环定义)
        sec_lines: Line-width segments [[x1,y1,x2,y2,width], ...] (线宽定义)
    
get_special_resultsA
    Get special post-analysis results (专项分析结果查询) — beyond the basic
    deformation/force/stress/reaction of get_analysis_results.

    Args:
        kind: Result kind (结果类型):
            "vibration_modal" (自振振型, 需 mode), "buckling_modal" (屈曲振型, 需 mode),
            "period_vibration" (周期与振型汇总), "buckling_eigenvalue" (屈曲特征值),
            "self_concurrent_reaction" (自并发反力, 需 node_id + case_name),
            "all_concurrent_reaction" (全并发反力, 需 node_id + case_name),
            "concurrent_force" (并发内力, 需 ids + case_name),
            "elastic_link_force" (弹性连接内力, 需 ids),
            "constraint_equation_force" (约束方程内力, 需 ids),
            "cable_element_length" (索单元无应力长度, 需 ids)
        ids: Element/link IDs (单元/连接编号)
        case_name: Load case name (荷载工况名)
        node_id: Node ID for concurrent reactions (并发反力节点号)
        mode: Mode number for modal results (振型阶数)
        stage_id: Construction stage (施工阶段号, -1=运营)
        result_kind: Result kind flag (结果种类)
        envelop_type: Envelope type (包络类型)
        increment_type: Increment type (增量类型)
        limit: Max items per page (单页条数上限)
        offset: Pagination offset (翻页偏移)
    
initialize_modelA
    Initialize a new empty model (初始化全新模型).
    
    WARNING: This will CLEAR the current model data in the active bridge software!
    (警告:此操作将清空桥通软件中的当前模型!)
    
    Use this ONLY when starting a brand new project, NOT when modifying an existing one.
    (仅在从零开始新建桥梁时使用,修改现有模型时绝对不要调用此工具)

    CRITICAL LLM INSTRUCTION: Do NOT call this tool autonomously to fix your own mistakes. 
    You MUST explicitly ask the USER for permission before calling this tool.
    (严重的指令:大模型绝对不可为了修复自己的建型错误而自行调用此工具清空模型!必须先向用户询问并获得许可!)
    
    Args:
        confirm: Must be set to true to execute (必须设为true以确认操作)
    
save_model_fileB
    Save the current model to a file (保存模型文件).

    Args:
        file_path: Absolute or relative path to the .qtb file (保存的文件路径)
    
open_model_fileA
    Open an existing model file (打开模型文��).

    Args:
        file_path: Absolute or relative path to the .qtb file (要打开的文件路径)
    
remove_unused_sectionsA

Clean up and remove all unused sections from the model (删除未使用的截面).

update_nodeA
    Modify an existing node's coordinates or ID (修改节点坐标或编号).

    Args:
        node_id: Existing node ID to modify (待修改的节点编号)
        x: New X coordinate, leave None to keep unchanged (新X坐标,不修改则留空)
        y: New Y coordinate, leave None to keep unchanged (新Y坐标,不修改则留空)
        z: New Z coordinate, leave None to keep unchanged (新Z坐标,不修改则留空)
        new_id: New node ID, -1 to keep unchanged (新节点编号,-1表示不修改编号)

    Example:
        update_node(1, z=-1.5)  # Move node 1 down to z=-1.5
    
update_node_idC
    Change a node's ID (修改节点编号).

    Args:
        node_id: Existing node ID (原节点编号)
        new_id: New node ID (新节点编号)
    
renumber_nodesB
    Renumber nodes (节点重新编号).
    If no IDs are provided, renumbers all nodes starting from 1 continuously.

    Args:
        ids: List of node IDs or string format (可选,原节点号)
        new_ids: List of new node IDs (可选,新节点号)
    
move_nodesA
    Move nodes by an offset (平移节点).

    Args:
        ids: Node ID(s) to move. Supports int, list, or range string '1to10'.
             (节点编号,支持整数、列表或范围字符串)
        offset_x: X-direction offset in model units (X方向偏移量)
        offset_y: Y-direction offset in model units (Y方向偏移量)
        offset_z: Z-direction offset in model units (Z方向偏移量)

    Example:
        move_nodes("1to10", offset_z=-0.5)  # Move nodes 1-10 down by 0.5m
    
update_elementA
    Modify an existing element's properties (修改单元属性).

    Args:
        old_id: Existing element ID (待修改的单元编号)
        new_id: New element ID, -1 to keep unchanged  (新单元编号,-1不修改)
        ele_type: Element type (单元类型): 1=beam(梁), 2=truss(杆), 3=cable(索), 4=plate(板)
        node_i: New I-end node ID (新I端节点号)
        node_j: New J-end node ID (新J端节点号)
        mat_id: New material ID (新材料编号)
        sec_id: New section ID (新截面编号)
        beta_angle: New beta angle in degrees (新贝塔角,单位度)

    Example:
        update_element(5, mat_id=2, sec_id=3)  # Change element 5's material and section
    
update_element_idB
    Change an element's ID (更改单元编号).

    Args:
        old_id: Existing element ID (原单元编号)
        new_id: New element ID (新单元编号)
    
renumber_elementsA
    Renumber elements (单元编号重排序).
    If no IDs are provided, renumbers all elements starting from 1 continuously.

    Args:
        element_ids: List of element IDs or string format (可选,原单元号)
        new_ids: List of new element IDs (可选,新单元号)
    
revert_local_orientationB
    Revert local orientation of frame elements (反转杆系单元局部方向).

    Args:
        ids: Element ID(s) to revert (待反转方向的单元编号)
    
update_element_materialA
    Change the material of one or more elements (修改单元材料).

    Args:
        ids: Element ID(s). Supports int, list, or range string '1to50'.
             (单元编号,支持整数、列表或范围字符串)
        mat_id: New material ID (新材料编号,使用 get_materials 查询有效编号)

    Example:
        update_element_material("1to20", mat_id=2)
    
update_element_sectionA
    Change the section of one or more frame elements (修改杆系单元截面).

    Args:
        ids: Element ID(s). Supports int, list, or range string '1to50'.
             (单元编号,支持整数、列表或范围字符串)
        sec_id: New section ID (新截面编号,使用 get_section_list 查询有效编号)

    Example:
        update_element_section("1to30", sec_id=2)
    
update_element_betaA
    Change the beta angle of one or more elements (修改单元贝塔角).

    The beta angle controls the local axis orientation of a beam/truss element.
    贝塔角控制单元局部坐标系方向。

    Args:
        ids: Element ID(s). Supports int, list, or range string.
             (单元编号,支持整数、列表或范围字符串)
        beta: New beta angle in degrees (新贝塔角,单位:度)

    Example:
        update_element_beta("1to10", beta=90)
    
update_element_nodesB
    Replace the end nodes of an element (修改单元端节点).

    Args:
        element_id: Element ID to modify (待修改的单元编号)
        node_i: New I-end node ID (新I端节点号)
        node_j: New J-end node ID (新J端节点号)
    
add_to_structure_groupA
    Add nodes and/or elements to an existing structure group
    (向已有结构组中添加节点和/或单元).

    Args:
        group_name: Name of the structure group (结构组名称)
        node_ids: Node ID(s) to add. Supports int, list, or range string '1to10'.
                  (要添加的节点编号)
        element_ids: Element ID(s) to add. Supports int, list, or range string.
                     (要添加的单元编号)

    Example:
        add_to_structure_group("上部结构", element_ids="11to20")
    
remove_from_structure_groupA
    Remove nodes and/or elements from an existing structure group
    (从结构组中移除节点和/或单元).

    Args:
        group_name: Name of the structure group (结构组名称)
        node_ids: Node ID(s) to remove. Supports int, list, or range string.
                  (要移除的节点编号)
        element_ids: Element ID(s) to remove. Supports int, list, or range string.
                     (要移除的单元编号)
    
remove_nodesA
    Delete nodes from the model (删除节点).

    Args:
        ids: Node ID(s) to delete. Supports int, list, or range string '1to10'.
             Leave empty to delete ALL nodes.
             (节点编号,留空则删除全部节点)
        confirm_delete_all: MUST be set to true if ids is empty (deleting all nodes).
                            (如果要删除所有节点,必须设为 true)

    CRITICAL LLM INSTRUCTION: Do NOT delete all nodes autonomously to fix your own mistakes.
    You MUST explicitly ask the USER for permission before calling this tool with empty ids.
    (大模型绝对不可为了修复自己的错误而自行清空所有节点!必须先向用户询问并获得许可!)

    Example:
        remove_nodes(ids=[5, 6, 7])  # Delete specific nodes
    
remove_elementsA
    Delete elements from the model (删除单元).

    Args:
        ids: Element ID(s) to delete. Supports int, list, or range string '1to10'.
             Leave empty to delete ALL elements.
             (单元编号,留空则删除全部单元)
        remove_free_nodes: Also delete nodes that become free after element deletion
                           (是否同时删除孤立节点,默认不删除)
        confirm_delete_all: MUST be set to true if ids is empty (deleting all elements).
                            (如果要删除所有单元,必须设为 true)

    CRITICAL LLM INSTRUCTION: Do NOT delete all elements autonomously to fix your own mistakes.
    You MUST explicitly ask the USER for permission before calling this tool with empty ids.
    (大模型绝对不可为了修复自己的错误而自行清空所有单元!必须先向用户询问并获得许可!)

    Example:
        remove_elements(ids="11to20")
    
merge_nodesA
    Merge nodes that are at (nearly) the same coordinates (合并重合节点).

    This is equivalent to the "Merge Nodes" operation in the GUI.
    Useful after building a model to remove accidental duplicate nodes.
    相当于界面上的"合并节点"功能,用于消除重叠节点。

    Args:
        ids: Node ID(s) to check. Supports int, list, or range string.
             Leave empty to check ALL nodes.
             (节点编号,留空则检查全部节点)
        tolerance: Merge distance tolerance in model units, default 0.0001m
                   (合并容许误差,默认 0.0001m)

    Example:
        merge_nodes()  # Merge all overlapping nodes in the model
    
check_qiaotong_connectionA
    Diagnose the connection to QiaoTong software (诊断桥通软件连接状态).

    CALL THIS FIRST when any tool reports the backend is unavailable.
    It distinguishes the three failure modes, which need different fixes:
    (任一工具报后端不可用时先调用本工具,它区分三种需要不同处置的状态)

    - connected (已连接): ready to model.
    - version_mismatch (版本不匹配): the QiaoTong API version and the
      installed qtmodel differ. qtmodel pins an exact version, so the
      user must upgrade QiaoTong (or install a matching qtmodel).
      (桥通与 qtmodel 版本必须精确一致,需升级桥通软件)
    - software_not_running (软件未启动): start QiaoTong and wait for the
      main window, then retry. (启动桥通并等待主界面加载)

    Returns the status, a human-readable message, the recommended action,
    and the client/server versions involved.

    IMPORTANT: when connecting through a port forward (e.g. an SSH tunnel to
    QiaoTong on another machine), the URL host must be `localhost`, not
    `127.0.0.1`. Windows HTTP.sys validates the Host header and rejects the
    bare IP with "400 Invalid Hostname" even though the port is reachable.
    (经端口转发访问时必须用 localhost;Windows HTTP.sys 会以
    400 Invalid Hostname 拒绝 127.0.0.1 的 Host 头)
    
list_qtmodel_apiA
    Discover qtmodel API methods and their real signatures (检索 qtmodel API 方法及签名).

    Use this to find long-tail methods NOT covered by the curated tools,
    then invoke them with call_qtmodel_api. ALWAYS discover the real
    signature here before calling — do not guess parameter names.
    (先用本工具查到真实签名,再用 call_qtmodel_api 调用,切勿臆测参数名。)

    Args:
        api_object: Which database to inspect (数据库对象):
            "mdb" (建模), "odb" (结果/查询), "cdb" (检算)
        pattern: Case-insensitive substring filter on method name
                 (方法名关键字过滤,如 "tendon"、"spectrum")
    
call_qtmodel_apiA
    Call a qtmodel API method not covered by a curated tool (调用 qtmodel 长尾 API).

    ESCAPE HATCH — prefer a dedicated tool when one exists. Discover the
    real signature with list_qtmodel_api first. Arguments are validated
    against the real signature before dispatch, so a wrong parameter name
    fails fast with the correct signature rather than corrupting the model.

    Destructive/long-running methods (initial 清空模型, do_solve 求解) are
    blocked here — use initialize_model / run_analysis instead.
    (清空模型、求解等危险或长耗时操作已禁止经此调用,请用对应专用工具。)

    Args:
        api_object: Database object (数据库对象): "mdb", "odb", "cdb"
        method: Exact method name (精确方法名), e.g. "add_spectrum_function"
        kwargs: Keyword arguments as a dict, matching the real signature
                (与真实签名一致的关键字参数字典)

    Example:
        call_qtmodel_api("mdb", "add_tendon_group", {"name": "钢束组1"})
    

Prompts

Interactive templates invoked by user choice

NameDescription
design_simple_beam Guided workflow for designing a simple beam bridge (简支梁桥设计流程). Args: span_length: Span length in meters (跨径,单位m) beam_height: Beam height in meters (梁高,单位m) material: Concrete grade (混凝土等级)
design_continuous_beam Guided workflow for designing a continuous beam bridge (连续梁桥设计流程). Args: spans: Span arrangement, e.g. '30+50+30' in meters (跨径布置) material: Concrete grade (混凝土等级)
check_structure Guided workflow for structural code checking (结构检算工作流). Args: check_standard: Design code standard (检算规范), e.g. 'JTG3362-2018' (公路), 'TB10092-2017' (铁路)
construction_stage_analysis Guided workflow for construction stage analysis (施工阶段分析工作流).

Resources

Contextual data attached and managed by the client

NameDescription
model_summary Current bridge model summary (当前桥梁模型概要). Provides node/element/material/section counts and other statistics.
model_materials List of all materials in the current model (当前模型所有材料列表).
model_sections List of all section IDs in the current model (当前模型所有截面编号列表).
model_load_cases List of all load case names in the current model (当前模型所有荷载工况名).
model_stages List of all construction stage names (所有施工阶段名称).
model_structure_groups List of all structure group names (所有结构组名称).
model_boundaries Boundary condition data in the current model (当前模型边界条件信息). Includes general supports, elastic links, elastic supports, master-slave links, and beam constraints.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SorataYang/qiao-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server