【C#】【SAP2000】读取SAP2000中所有Frame对象在指定工况的温度荷载值到Grasshopper中

if (build == true)
{
    // 连接到正在运行的 SAP2000
    // 使用 COM 接口获取 SAP2000 的 API 对象
    cOAPI mySapObject = (cOAPI)System.Runtime.InteropServices.Marshal.GetActiveObject("CSI.SAP2000.API.SapObject");
    // 获取 SAP2000 模型对象
    cSapModel mySapModel = mySapObject.SapModel;

    // 获取所有框架单元的总数
    int numberFrames = 0; // 存储框架单元的总数
    string[] frameNames = null; // 存储所有框架单元的名称
    // 调用 SAP2000 API 的 GetNameList 函数获取框架单元的总数和名称
    int ret = mySapModel.FrameObj.GetNameList(ref numberFrames, ref frameNames);

    // 声明温度荷载列表
    List<double> _temp = new List<double>(); // 存储每个框架单元的温度荷载值

    // 遍历所有单元
    for (int i = 0; i < numberFrames; i++)
    {
        // 获取当前框架单元的名称
        string frameName = frameNames[i];

        // 获取当前框架单元的温度荷载
        int NumberItems = 0; // 存储当前框架单元的荷载数量
        string[] FrameName = new string[0]; // 存储当前框架单元的名称
        string[] LoadPat = new string[0]; // 存储荷载工况的名称
        int[] MyType = new int[0]; // 存储荷载类型
        double[] Val = new double[0]; // 存储荷载值
        string[] PatternName = new string[0]; // 存储荷载工况的名称

        // 调用 SAP2000 API 的 GetLoadTemperature 函数获取当前框架单元的温度荷载信息
        ret = mySapModel.FrameObj.GetLoadTemperature(frameName, ref NumberItems, ref FrameName, ref LoadPat, ref MyType, ref Val, ref PatternName);

        // 检查是否为 "PRE-F" 工况下的温度荷载
        bool hasTempLoad = false; // 标记是否找到 "PRE-F" 工况下的温度荷载
        for (int j = 0; j < NumberItems; j++)
        {
            // 如果找到 "PRE-F" 工况下的温度荷载
            if (LoadPat[j] == "PRE-F" && MyType[j] == 1)
            {
                _temp.Add(Val[j]); // 将温度荷载值添加到列表中
                hasTempLoad = true; // 标记已找到温度荷载
                break; // 跳出循环,因为每个框架单元只能有一个温度荷载
            }
        }

        // 如果没有找到 "PRE-F" 工况下的温度荷载,则添加0
        if (!hasTempLoad)
        {
            _temp.Add(0); // 为当前框架单元添加0作为温度荷载值
        }
    }

    // 将温度荷载列表赋值给输出参数 TempLoads
    TempLoads = _temp; // 将获取到的温度荷载列表赋值给 Grasshopper 组件的输出参数
}

SAP2000中该工况下的温度荷载
在这里插入图片描述
grasshopper中该工况下的荷载
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 06:58:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 06:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 06:58:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 06:58:03       20 阅读

热门阅读

  1. 使用cuBLAS做行优先矩阵的矩阵乘

    2024-03-13 06:58:03       18 阅读
  2. go语言tcp协议实现文件上传

    2024-03-13 06:58:03       24 阅读
  3. 指针数组与数组指针

    2024-03-13 06:58:03       21 阅读
  4. 使用go开发的小tips

    2024-03-13 06:58:03       20 阅读
  5. 如何使用 CSS 中的 :root 伪类选择器

    2024-03-13 06:58:03       24 阅读
  6. SpringCloud-实现基于RabbitMQ的消息队列

    2024-03-13 06:58:03       23 阅读
  7. Linux纯命令行查看文本文件

    2024-03-13 06:58:03       23 阅读
  8. 【系统安全】浅谈保障接口安全的10种技术手段

    2024-03-13 06:58:03       24 阅读
  9. 异步&事件循环输出题-易错知识点

    2024-03-13 06:58:03       19 阅读