• 获取具有指定扩展数据的所有实体的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(" 打开实体失败!"));
    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;
    }

  • 相关阅读:
    130被围绕的区域
    129求根到叶子节点数字之和
    单表查询
    数据的增删改
    多表结构的创建与分析
    修改表结构
    完整性约束
    基础操作和数据类型
    存储引擎
    Python3.8爬天气网站信息,并保存为CSV(11)
  • 原文地址:https://www.cnblogs.com/pengjun-shanghai/p/4786326.html
Copyright © 2020-2023  润新知