CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

修改图纸集 (SSO) 的准则

2024-5-18 19:22| 发布者: admin| 查看: 94| 评论: 0|原作者: admin|来自: AutoCAD

修改图纸集 (SSO) 的准则

图纸集 API 是一个多客户端 API。这意味着在任何给定时间,多个客户端可能正在查看给定客户端并与之交互。这需要特别注意如何在数据库中引用或修改对象。AcSmDatabase

要对 中的任何对象进行修改,必须将其锁定,然后在完成更改后将其解锁。只有在准备进行更改时才应锁定数据库,并且应尽快将其解锁。出于性能原因,还应尽可能少地锁定和解锁数据库。如果需要进行多项修改,请锁定数据库,进行所有更改,然后将其解锁。AcSmDatabase

由于数据库有多个客户端,因此当其他客户端进行更改时,它将不时自动重新加载。重新加载数据库时,将丢弃所有包含的对象实例,并在读入数据库时创建新实例。

因此,在引用驻留在图纸集数据库中的对象时,必须遵循以下基本规则:

  • 切勿缓存指向图纸集数据库中对象的直接指针。如果必须在图纸集数据库中缓存对对象的引用,请改为存储关联的对象。使用对象 ID,可以安全地检索指向关联对象实例的指针;始终检索当前实例。IAcSmObjectId

重新加载数据库后,指向驻留在数据库的对象的指针将无效。但是,如果改为存储对象 ID,则可以使用它来安全地检索指向当前对象实例的指针。

此规则的唯一例外是数据库。您可以存储指向 的指针,因为在重新加载操作期间不会销毁和重新创建数据库对象。AcSmDatabase

可以通过对任何驻留在数据库的对象调用该方法来检索该对象的对象 ID。相反,可以通过调用该方法从 ID 获取关联的对象实例。这将返回一个常规接口指针,可以查询所需的接口。GetObjectIdGetPeristentObjectIAcSmPersist

注意:只能使用图纸集管理器对象修改 DST 文件。

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-15 12:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部