明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1444|回复: 3

[求助] 选择一个组实体,获得组名

[复制链接]
发表于 2010-10-10 10:34:00 | 显示全部楼层 |阅读模式

如题。。。求助

发表于 2010-10-10 12:33:00 | 显示全部楼层
看本版的精华帖
发表于 2010-10-15 20:30:00 | 显示全部楼层
 //根据输入的对象,找到这个对象属于的组名
        private string GetentgroupName(Entity ent)
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            Database db = HostApplicationServices.WorkingDatabase;
            string groupName = "";
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                //打开当前数据库的组字典对象
                DBDictionary dict = (DBDictionary)trans.GetObject(db.GroupDictionaryId, OpenMode.ForRead);

                foreach (var gptemp in dict)
                {
                    ObjectId gpid = dict.GetAt(gptemp.Key);
                    //由于要在组中进行去除对象的操作,因此以写的方式打开找到的组对象
                    Group gp = (Group)trans.GetObject(gpid, OpenMode.ForWrite);
                    bool isHas = gp.Has(ent);
                    if (isHas == true)//如果在这个组中,则返回这个祖名
                    {
                        groupName = gptemp.Key;
                        break;
                    }

                }
                trans.Commit();
            }
            return groupName;
        }
 楼主| 发表于 2010-10-15 20:49:00 | 显示全部楼层
非常感谢两位的回答,我已经找到问题所在:版本问题。CAD2006版本没有var和DictionaryEntry,痛苦找了好久。用CAD2008测试了后都好使。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 00:28 , Processed in 0.147648 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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