【发布时间】:2016-10-20 09:08:30
【问题描述】:
我有一个问题更多是关于“最佳实践”的理论,而不是实际的技术编程。
我正在尝试考虑在我的程序放置元素后处理对其进行编辑的最佳方法。具体来说,我的程序设置如下:
用户单击 Revit 中实质上“将一些族添加到项目中”的工具。它读取用户创建的草图并根据草图放置项目。
我想让用户能够“编辑草图”那些类似于楼板的元素。我不相信 Revit API 公开了使用“草图模式”绘制草图的能力。我正在尝试在我的程序中模仿这种非常有用的功能。
所以,我所做的是使用可扩展存储并将 UniqueId 存储到使用我的工具创建的所有元素中。程序所做的是当用户单击“编辑元素”工具时,程序要求新草图,要求单击现有元素,读取现有元素的 UniqueId 并调用具有该 UniqueId 的所有元素并删除它们,然后程序使用用户“新草图”再次将新元素添加到项目中。
问题是,如果用户删除了添加到项目中的原始元素,然后尝试对其进行编辑,我如何保证用户不会删除那些具有 UniqueId 的原始元素?我认为要走的路是使用 Revit API 中的动态模型更新功能。
这些算法中的大多数是如何编写的?我在正确的轨道上吗?我是否只是将 UniqueIds 分配给元素并将它们存储在元素本身上,以便稍后调用它们?也许我缺少这个难题的基本理论部分。数据结构?
【问题讨论】:
标签: c# api elements editing revit