zoukankan      html  css  js  c++  java
  • ObjectARX属性块参照遍历属性值实例代码

    属性块属性值遍历参考代码.

    		//获取块参照属性
    		ads_name ent;
    		ads_point pt;
    		if (RTNORM != acedEntSel(NULL,ent,pt))
    		{
    			acutPrintf(_T("
    未选择有效对象!"));
    			return;
    		}
    		AcDbObjectId objId;
    		acdbGetObjectId(objId,ent);
    		AcDbObjectPointer<AcDbBlockReference> pBlkRef(objId,AcDb::kForRead);
    		if (Acad::eOk != pBlkRef.openStatus())
    		{
    			acutPrintf(_T("
    打开块参照失败,错误码: %s "),pBlkRef.openStatus());
    			return;
    		}
    		//直接获取图块的属性迭代器
    		AcDbObjectIterator *pIter=pBlkRef->attributeIterator();
    		//无论图块是否有属性,迭代器一般不会为NULL
    		if (NULL == pIter)
    		{
    			acutPrintf(_T("
    获取属性迭代器失败!"));
    			return;
    		}
    		//设置判断是否能获取到属性
    		bool bIsAttribBlock=false;
    		for (pIter->start();!pIter->done();pIter->step())
    		{
    			AcDbObjectId attribId=pIter->objectId();
    			AcDbObjectPointer<AcDbAttribute> pAttrib(attribId,AcDb::kForRead);
    			if (Acad::eOk != pAttrib.openStatus())
    			{
    				continue;
    			}
    			//方式一
    			/*
    			CString strTag;
    			strTag=pAttrib->tag();
    			CString strValue;
    			strValue=pAttrib->textString();
    			acutPrintf(_T("
    属性名: %s 属性值: %s"),strTag,strValue);
    			*/
    			//方式二
    			ACHAR *szTag=pAttrib->tag();
    			ACHAR *szValue=pAttrib->textString();
    			if (szTag!=NULL && szValue!=NULL)
    			{
    				acutPrintf(_T("
    属性名: %s 属性值: %s"),szTag,szValue);
    			}
    			else
    			{
    				acutPrintf(_T("
    获取属性值失败!"),szTag,szValue);
    			}
    			if (szTag!=NULL)
    			{
    				acutDelString(szTag);
    			}
    			if (szValue!=NULL)
    			{
    				acutDelString(szValue);
    			}
    			//获取到属性,设置标志
    			bIsAttribBlock=true;
    		}
    		//释放迭代器
    		delete pIter;
    		if (!bIsAttribBlock)
    		{
    			acutPrintf(_T("
    该块参照无属性!"));
    		}
    

      

  • 相关阅读:
    【结对开发】电梯调度 一(从电梯布局分配考虑)需求分析及设计思路。
    【结对开发】求一个整数数组的所有子数组中和的最大值。
    【测试用例选取及异常处理】 之 求一个数组中的最大整数。
    互测测评报告
    绩效考核
    冲刺5
    写个烂android一天到晚活累死,
    冲刺3
    冲刺2
    冲刺1
  • 原文地址:https://www.cnblogs.com/edata/p/12656673.html
Copyright © 2011-2022 走看看