乐筑天下

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

获取动态块名

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2015-12-25 13:34:41 | 显示全部楼层 |阅读模式
大家好,
我成功地在我的WIN上编写了以下代码,但我遇到了动态块名的问题,所以如何获得匿名块名
请随意评论代码,因为我正在学习C#
中的代码
{
Document doc=Application.DocumentManager.MdiActiveDocument
数据库db=doc.Database
编辑器ed=doc.Editor
字典
dic=newdictionary
()
TypedValue[]val={newtypedvalue((int)DxfCode.Start,“INSERT”)}
SelectionFilter-ftr=新的selectionfiller(val)
PromptSelectionResult ss=ed.GetSelection(ftr)
如果(ss.Status==PromptStatus.OK)
{
使用(Transaction tr=db.TransactionManager.StartTransaction())
{
试试
{
blockent
foreach(ss.Value.getObjectId()中的ObjectId)
{
ent=tr.GetObject(id,OpenMode.ForRead)作为BlockReference
字符串BlockName=ent.Name
if(dic.ContainsKey(BlockName))
{
int n=1+dic[BlockName]
dic.Remove(BlockName)
dic。添加(BlockName,n)
}
其他
{
dic。添加(BlockName,1)
}
}
}
捕获(System.Exception.ex)
{
ed.WriteMessage(例如Message)
返回
}
}
如果(dic.Count>0)
{
ed.WriteMessage(“\n块名:[数量]”)
foreach(dic中的KeyValuePair
项)
{
ed.WriteMessage(“\n”+item.Key+”------[“+item.Value+”])
}
}
}
}

谢谢。

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

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

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2015-12-25 15:02:48 | 显示全部楼层
嗨,公共静态字符串GeteffectiveName(Block参考源)。
{。
如果(source.IsDynamicBlock)。
返回((BlockTableRecords)source.DynamicBlockTableRecord.GetObject(OpenMode.ForRead)),名称;。
返回source.Name;。
}。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2015-12-25 15:13:53 | 显示全部楼层
很好,
非常感谢gile。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 21:56 , Processed in 0.144781 second(s), 58 queries .

© 2020-2025 乐筑天下

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