nobody 发表于 2016-8-30 10:50:12

添加笔记属性

尝试向autocad dbpoint添加注释,但认为下面的代码有问题。感激不尽,谢谢!acPoint。CreateExtensionDictionary();。
text note txt = new text note();。
txt,Note = finalstring。
db dictionary ext dict =(db dictionary)AC point,extension dictionary . GetObject(OpenMode,for write);。
extdict,SetAt(TextNote,ExtensionDictionaryName,txt);。
MyTrans,AddNewlyCreatedDBObject(txt,true);。

**** Hidden Message *****

T.Willey 发表于 2016-8-30 11:44:02

我已经很久没做过了。但是“CreateExtensionDictioary()”返回什么呢?如果它返回字典,那么我会考虑将这个点添加到字典中,并将其添加到数据库中。
现在看起来您正在创建字典,然后试图从一个还没有它的对象中获取新创建的字典(因为它还没有被添加到数据库中)。
但是我可能完全错了,因为我说过我已经有一段时间没有使用. Net了。

nobody 发表于 2016-8-30 21:57:29

谢谢T.Willey....就是这样...不得不将交易一分为二,非常感谢!acBlkTblRec.AppendEntity(acPoint);。
newtrans.AddNewlyCreatedDBObject(acPoint,true);。
newtrans.Commit();。

acPoint.CreateExtensionDictionary();。
TextNote txt=new TextNote();。
txt.Note=finalstring;。

extdict.SetAt(TextNote.ExtensionDictionaryName,txt);。
MyTrans.AddNewlyCreatedDBObject(txt,true);。

T.Willey 发表于 2016-8-31 03:01:32

我很高兴你让它工作了,但我不得不认为有比提交两次这样的交易更好的方法。希望更熟悉的人。Net会提出更好的解决方案。如果没有,也许我可以查看我的一些旧代码,看看我是否做了这样的事情。当我有时间的时候。不客气,Area a51Visitor。

MickD 发表于 2016-8-31 03:14:09


您是否尝试过仅使用一个事务并在最后仅调用提交?
您可以对不同的对象多次使用AddAddNewlyCreatedDBObject,有时您需要对某些实体执行此操作,因为您已经找到了,然后才能编辑某些属性。
您可以将事务视为撤消控制器,启动事务就像设置撤消标记一样,您执行操作,如果出现问题,事务将回滚到该点的任何更改。提交后,它将完成更改。

T.Willey 发表于 2016-8-31 03:16:36

看看这篇文章中的代码《我的吉尔:https://www.theswamp.org/index.php?》topic = 42203 . msg 473386 # msg 473386我想你只需要把你的point,AddNewlyCreatedDBObject(AC point,true)添加到你的事务,单个主事务,就可以使用了。你的第一篇文章没有这一步。
被MickD忍者...但我还是会贴出来。

nobody 发表于 2016-8-31 23:52:00


我做了。。。但似乎没有工作。我可能出了什么问题。 谢谢米克!

Jeff_M 发表于 2016-9-1 10:00:39

冒着听起来很傻的风险...什么是短信?它位于哪个程序集?

nobody 发表于 2016-9-1 18:55:31


Autodesk.Aec.DatabaseServices
页: [1]
查看完整版本: 添加笔记属性