kees987 发表于 2015-3-5 06:06:44

c#检测较新的行

当你有2条线时,有没有办法找出什么是最古老的绘制线,什么是较新的绘制线?
我可以假设具有较高ObjectId值的那个总是较新的那个吗?
**** Hidden Message *****

BillZndl 发表于 2015-3-5 07:06:17


我在查找绘图中创建的最后一个组时使用Object.Id.Handle.Value。
那是很久以前的事了,所以我不记得所有的细节。
IIRC:这与ObjectId更改每个绘图会话有关?IDK。

kees987 发表于 2015-3-5 07:13:48

是的,似乎当我关闭绘图并重新打开它时,所有的objectID都已改变。
对于我的情况,我希望确保在同一个会话中获得新创建的行。所以这就是为什么我需要确定它没有使用任何更低的数字。
查看对象。Id.Handle.Value,是因为较高的值总是较新创建的值,还是因为较旧的已删除条目被重用?

huiz 发表于 2015-3-5 07:22:31


您可以通过绘制一些线条来测试它,删除最旧的线条,重新打开绘图并放置新行。
句柄将保留,ObjectIds不保留。

kees987 发表于 2015-3-5 07:24:00


您可以通过绘制一些线条来测试这一点,删除最旧的线条,重新打开绘图并放置一个新行。句柄将保留,ObjectIds不会。

但是,您如何通过查看句柄来判断最近创建的是什么。我可以100%肯定地说,更高值的句柄总是更新的,或者删除的条目(低数字)会被重新使用吗?
编辑:
mm一些测试已经告诉我,仅查看对象ID,新行可以获得比旧行更低的数字。这还没有帮助

MexicanCustard 发表于 2015-3-5 12:57:55

它们在数据库中的顺序是按时间顺序排列的吗?如果您检索ModelSpace中的所有对象,您会将对象先添加到最后添加吗?我从未尝试过,但它们应该按照添加的顺序出现。

huiz 发表于 2015-3-5 13:42:42


不使用ObjectId进行测试,而是使用Handles。ObjectIds在绘图打开时添加,并在绘图关闭时消失。句柄存储在绘图数据库中并将保留。

BillZndl 发表于 2015-3-5 15:07:45


我已经在组上使用objectId.Handle.Value多年了,它从未失败过。
我们一直在使用它。

BillZndl 发表于 2015-3-5 16:23:07

如果您需要会话的起点,则 Database.Handseed 将提供数据库将用于下一个对象的句柄。
页: [1]
查看完整版本: c#检测较新的行