【问题标题】:Autodesk ObjectId and ElementId in dwgdwg 中的 Autodesk ObjectId 和 ElementId
【发布时间】:2018-07-21 00:23:39
【问题描述】:

我习惯于使用 Forge API 开发一个网络应用程序。它运作良好。同时我在forge中使用设计自动化。我可以创建包并且它工作正常。

我将使用准备查看器的 forge api 处理 dwg 文件。我可以在浏览器中查看 dwg。

我的问题是我有查看器点击事件,事件点击填充元素 ID。但是,我的包我只能获取对象 ID。 element id 和 object id 完全不同。

每个对象客户端和服务器端的 conman id 是什么。

总结:当用户在查看器中单击对象时,我想捕获 id 并存储我的本地数据库。并使用包我需要处理用户点击的对象。

示例:当用户在查看器中单击图纸编号时。从下次开始,我想使用 C# 代码中的调用包动态更改绘图编号。

【问题讨论】:

  • 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。
  • 版主 - 请您取消对这个问题的保留。在此处使用的 autodesk* 标签的上下文中,这个问题是完全可以理解的。 (唯一不合适的标签是通用的“forge”标签,因为问题是关于“autodesk-forge”,但这个错误是可以理解的)。谢谢。
  • @StephenPreston 在审核时碰巧遇到了这个问题。您的评论清楚地表明它应该重新打开(所以它已经)

标签: autodesk-forge forge autodesk-designautomation


【解决方案1】:

对于 RVT 文件,处理此问题的一种简单方法是从 Forge 对象属性中提取 Forge externalId。这等于 Revit 元素 UniqueId 属性。 RvtMetaProp Revit add-in 利用了这个。

哦,现在我刚刚找到了一个更好,更完整,更简洁的Unique IDs for Forge Viewer Elements解释:

查看器在处理 Revit 文件时可以访问三种类型的 ID:

  • dbId:这是特定于查看器的,用于操作查看器中的元素,例如 .getProperties() 方法。
  • Revit ElementID:作为查看器中Name 属性的一部分公开。当您选择某些内容时,“属性”面板标题的形式为“名称 [12345]”。您可以解析此名称字符串并提取元素 id。
  • Revit UniqueID:在.getProperty() 响应中显示为externalId 属性。

【讨论】:

  • 这个关于 DWG 文件的操作没有使用 RVT。我使用 Forge API 上传 DWG 文件并转换为 SVF 以准备查看器,我现在可以在浏览器中查看。 DWG 的每个对象客户端和服务器端的 conman id 是什么
  • 请看一下这个例子:github.com/Autodesk-Forge/design.automation-custom-data-viewer。服务端和客户端理解的通用 ID 称为“句柄”。
  • 详细说明 Albert 的响应 - AutoCAD 中的 ObjectId 对会话来说是唯一的,并且不会持久化。 DWG 文件中的唯一标识符是对象句柄。除了 Albert 引用的示例之外,请查看此博文 - forge.autodesk.com/cloud_and_mobile/2016/10/…
猜你喜欢
  • 2017-08-02
  • 2018-04-30
  • 2019-12-23
  • 2021-12-26
  • 2017-06-30
  • 2011-03-31
  • 2015-08-28
  • 2016-11-23
  • 2018-11-13
相关资源
最近更新 更多