明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1380|回复: 4

请高手指点,关于属性块的问题

[复制链接]
发表于 2010-11-30 09:35:32 | 显示全部楼层 |阅读模式
我创建一个块,然后,创建一个属性,并添加到这个块的attributeCollection中。
这时候,这个块能够显示出来,但是我定义的属性却不能。
当我选中这个块,或者把光标移动到这个块上的时候,属性就会显示了。
哪位能告诉我让属性即时显示出来该怎么做?
发表于 2010-11-30 10:58:55 | 显示全部楼层
你的代码呢
 楼主| 发表于 2010-11-30 13:36:53 | 显示全部楼层
本帖最后由 cairunbin 于 2010-11-30 13:39 编辑
lzh741206 发表于 2010-11-30 10:58
你的代码呢


谢谢。
代码在这里。                        
Database db = HostApplicationServices.WorkingDatabase;
ObjectId brId;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
      BlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;
      BlockTableRecord newBtr = new BlockTableRecord();
      bt.Add(newBtr);
      trans.AddNewlyCreatedDBObject(newBtr, true);

      Line horizontalGridLine = new Line(new Point3d(0, -10, 0), new Point3d(0, 10, 0));
      newBtr.AppendEntity(horizontalGridLine);
      trans.AddNewlyCreatedDBObject(horizontalGridLine, true);

      AttributeDefinition attdef = new AttributeDefinition(new Point3d(22, 0, 0), "test only", "testAttributeDefinition", "null", ObjectId.Null);
      newBtr.AppendEntity(attdef);
      trans.AddNewlyCreatedDBObject(attdef, true);

      BlockReference br = new BlockReference(new Point3d(30, 30 , 0), newBtr.ObjectId);
      BlockTableRecord modelSpaceBtr = trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
      brId = modelSpaceBtr.AppendEntity(br);
      trans.AddNewlyCreatedDBObject(br, true);

      AttributeReference ar = new AttributeReference();
      ar.SetAttributeFromBlock(attdef, br.BlockTransform);
      ar.TextString = attdef.TextString;
      br.AttributeCollection.AppendAttribute(ar);

      ar.Visible = true;
      trans.Commit();
}

发表于 2010-11-30 13:44:47 | 显示全部楼层
br.AttributeCollection.AppendAttribute(ar);
trans.AddNewlyCreatedDBObject(ar, true);
 楼主| 发表于 2010-11-30 14:27:49 | 显示全部楼层
lzh741206 发表于 2010-11-30 13:44
br.AttributeCollection.AppendAttribute(ar);
trans.AddNewlyCreatedDBObject(ar, true);

非常感谢!
非常正确!

谢谢了,呵呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 02:05 , Processed in 0.150699 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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