天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 4|回复: 0

获取具有指定扩展数据的所有实体的Id,并存入Id数组中

[复制链接]
  • TA的每日心情
    开心
    昨天 15:23
  • 签到天数: 69 天

    [LV.6]常住居民II

    410

    主题

    167

    回帖

    2704

    积分

    管理员

    积分
    2704
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    获取具有指定扩展数据的所有实体的Id,并存入Id数组中
    AcDbObjectIdArray ObtainEntId()
    {
    //获取块表
    AcDbBlockTable *pBlkTbl;
    acdbHostApplicationServices()->workingDatabase()
    ->getBlockTable(pBlkTbl, ZcDb::kForRead);
    //获取块表记录
    AcDbBlockTableRecord *pBlkTblRcd;
    pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd, ZcDb::kForWrite);
    pBlkTbl->close();
    //创建遍历器
    AcDbBlockTableRecordIterator *pIter = NULL;
    pBlkTblRcd->newIterator(pIter);

    AcDbObjectIdArray entIds;
    //遍历所有实体得到其ID
    for (pIter->start(); !pIter->done(); pIter->step())
    {
    //利用遍历器获得每一个实体
    AcDbEntity *pEnt = NULL;
    Acad::ErrorStatus es = pIter->getEntity(pEnt, AcDb::kForRead, false);
    if (Acad::eOk != es )
    {
    acutPrintf(_T("\n打开实体失败!"));
    return false;
    }

    //获取指定扩展数据的链表
    struct resbuf *pRc;
    struct resbuf *pRc1;

    pRc = pEnt->xData(_T("BMC_NO_APP"));
    pRc1 = pEnt->xData(_T("BMESC_CABLE_APP"));

    //如果两个扩展数据的链表相等,则将此实体的Id存入entIds中
    if( pRc != NULL && pRc1 != NULL)
    {
    entIds.append(pEnt->objectId());
    }
    pEnt->close();
    }
    delete pIter;
    pBlkTblRcd->close();
    return entIds;
    }

    分类

     

     

     

     

    获取具有指定扩展数据的所有实体的Id,并存入Id数组中
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|

    GMT+8, 2024-7-1 05:59 , Processed in 0.064399 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表