乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 125|回复: 5

[AUTOCAD MEP]_AECPROPERTYRENUMBERDATA,带栅栏选择

[复制链接]

68

主题

179

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
451
发表于 2020-5-10 21:39:47 | 显示全部楼层 |阅读模式
有没有办法使用_AECPROPERTYRENUMBERDATA(propertyrenumberdata)选择具有File或类似功能的多个对象?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2020-5-14 13:06:22 | 显示全部楼层
AutoCAD MEP附带的一种方法我不知道。
可以通过插件实现,而且相对容易
可以按对象选择的顺序、坐标、对象插入图形的顺序、逐个重新排序(由MEP实现)或其他方式重新排序。根据需要实施
回复

使用道具 举报

68

主题

179

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
451
发表于 2020-5-14 19:14:47 | 显示全部楼层

我在想用增量值和另一个标记创建另一个属性集数据,但您的方法听起来很有趣。请解释一下如何重新插入对象或按对象选择顺序重新排序?
回复

使用道具 举报

0

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2020-5-15 08:46:26 | 显示全部楼层
使用SortedDictionary操作PropertySet的AutoIncrementDataType的基本示例。
在windows窗体对话框中:
帮助器方法:
  1. public static class GhAecPropertySetHelper
  2. {
  3.        public static List GetPropertySetDefinitionNamesWithAutoIncrementDataType(Database db)
  4.        {
  5.            List lst = new List();
  6.            ObjectId psdId = ObjectId.Null;
  7.            using (Transaction tr = db.TransactionManager.StartTransaction())
  8.            {
  9.                DictionaryPropertySetDefinitions psdDict = new DictionaryPropertySetDefinitions(db);
  10.                ObjectIdCollection psdIds = psdDict.Records;
  11.                foreach (ObjectId id in psdIds)
  12.                {
  13.                    PropertySetDefinition psdf = (PropertySetDefinition)tr.GetObject(id, OpenMode.ForRead, false, false);
  14.                    PropertyDefinitionCollection pdc = psdf.Definitions;
  15.                    foreach (PropertyDefinition pd in pdc)
  16.                        if (pd.DataType == Autodesk.Aec.PropertyData.DataType.AutoIncrement)
  17.                        {
  18.                            lst.Add(psdf.Name);
  19.                            break;
  20.                        }
  21.                }
  22.                tr.Commit();
  23.            }
  24.            return lst;
  25.        }
  26.        public static List GetAutoIncrementPropertyDefinitionNames(string propSetDefName, Database db)
  27.        {
  28.            List lst = new List();
  29.            ObjectId psdId = ObjectId.Null;
  30.            using (Transaction tr = db.TransactionManager.StartTransaction())
  31.            {
  32.                DictionaryPropertySetDefinitions psdDict = new DictionaryPropertySetDefinitions(db);
  33.                if (psdDict.Has(propSetDefName, tr))
  34.                {
  35.                     // Assign the return variable the ObjectId of the property set
  36.                     psdId = psdDict.GetAt(propSetDefName);
  37.                     PropertySetDefinition psdf = (PropertySetDefinition)tr.GetObject(psdId, OpenMode.ForRead, false, false);
  38.                     PropertyDefinitionCollection pdc = psdf.Definitions;
  39.                     foreach (PropertyDefinition pd in pdc)
  40.                         if (pd.DataType == Autodesk.Aec.PropertyData.DataType.AutoIncrement)
  41.                             lst.Add(pd.Name);
  42.                }         
  43.                tr.Commit();
  44.            }
  45.            return lst;
  46.        }
  47.        public static bool SetValueFromPropertySetId(string propName, ObjectId propSetId, Object value, Database db)
  48.        {
  49.            bool findAny = false;           
  50.            int propSetDefId = 0;
  51.            using (Transaction trans = db.TransactionManager.StartTransaction())
  52.            {
  53.                try
  54.                {
  55.                    PropertySet propSet = (PropertySet)trans.GetObject(propSetId, OpenMode.ForWrite, false, false);
  56.                    propSetDefId = propSet.PropertyNameToId(propName);                  
  57.                    if ((propSet.IsWriteEnabled))
  58.                    {
  59.                         propSet.SetAt(propSetDefId, value);                     
  60.                        findAny = true;
  61.                    }   
  62.                }
  63.                catch (AcException)
  64.                {
  65.                    // most likely eKeyNotFound.
  66.                }
  67.                trans.Commit();
  68.            }
  69.            return findAny;
  70.        }
  71.        public static ObjectId GetPropertySetDefinitionIdByName(string propSetDefName, Database db)
  72.        {
  73.            // Create objectId to hold the property set objectId and              
  74.            // set the default value equal to null.  
  75.            ObjectId psdId = ObjectId.Null;               
  76.            AcDb.TransactionManager tm = db.TransactionManager;
  77.            using (Transaction trans = tm.StartTransaction())
  78.            {
  79.                // Create a Property Set Dictionary
  80.                AecPropDb.DictionaryPropertySetDefinitions psdDict = new AecPropDb.DictionaryPropertySetDefinitions(db);
  81.                // Check to see if the dictionary contains the name of the property set we are looking for
  82.                if (psdDict.Has(propSetDefName, trans))
  83.                {
  84.                    // Assign the return variable the ObjectId of the property set
  85.                    psdId = psdDict.GetAt(propSetDefName);
  86.                } // End If Block
  87.                trans.Commit();
  88.            } // End Using Statement
  89.            return psdId;
  90.        }
  91. }

回复

使用道具 举报

68

主题

179

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
451
发表于 2020-5-16 03:25:56 | 显示全部楼层
请问怎么把这个更新到NET framework 4.8?
回复

使用道具 举报

68

主题

179

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
451
发表于 2022-2-22 20:54:43 | 显示全部楼层
你好@Hanauer
有可能
共享一个完整的项目吗
我不能像你那样安排它,我犯了错误
谢谢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 01:48 , Processed in 0.296497 second(s), 64 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表