【发布时间】:2020-08-18 07:07:29
【问题描述】:
大家好,
大约两三个月前,我开始学习 Dynamo for Revit ......终于 :)
经过大量学习和测试,我得到了一些自己的脚本。然后我学习了 Python,因为我无法仅使用 Dynamo-Nodes 创建下一个脚本。
然后我想“让我们看看作为插件完成某件事是多么困难”。 我看了一些视频,读了很多东西。 最后我安装了 Revit-AddIn-Wizard 并制作了我的第一个小型 Test-PlugIn。 太好了……
现在我有一些我不明白的问题......所以我想我会在这里碰碰运气......因为通过阅读这个网站,我得到了很多信息和帮助。
我的目标是/是以下:(我告诉你我现在拥有什么)
一个带有几个按钮、组合框和一个 DataGridView 的表单。
我可以加载一个 Excel 文件,单击“显示”以在 DataGridView 中显示它。
每行的标题将自动放入 3 个组合框中。
在第一个组合框中选择第一个搜索参数,在第二个组合框中选择另一个搜索参数,在第三个组合框中选择要设置的参数。
我有一个复选框,用于从类型参数切换到实例参数以进行搜索和设置操作。
还有一个按钮显示另一个带有类别列表的小表单(我不会搜索所有,只搜索几乎所有模型类别)。
PlugIn
我花了很多时间“看视频,上网阅读,测试,测试和测试”。
感谢这个网站和其他一些网站......我设法让整个插件几乎 100% 正常工作。
但是现在我有一些奇怪的问题,我完全不知道如何解决它们或者是否有可能。我真的希望有人可以帮助我。
首先......我只是告诉你我的问题,也许有人可以说“这真的是一个问题!”或者有可能完成它。然后我会发布一些代码。
所以……我该怎么办?!
1. 我有一个过滤所有元素的 FilteredElementCollector。
2. 根据我的“类型/实例复选框”,我执行 .WhereElementIsElementType 或 .WhereElementIsNotElementType。
3. 然后它传递一个 MultiCategoryFilter 以将大列表降到只有模型类别。
4. 接下来,集合根据所有设置通过十种不同“方法”中的一种。在那里,我根据搜索列表组合框过滤此集合。当组合框显示“Familie”或“Typ”时,它会过滤“.BuiltInParameter.SymbolFamilyName”或“.Name”,否则只使用“.LookupParameter”。
之后,我有一个集合,其中仅包含所选类别的元素,其中包含 Excellist 中的值。
5. 根据我的搜索和设置设置(例如搜索类型和设置实例),我必须从收集的类型中获取实例,或者反过来。
6. 然后我将它传递给另一个方法,在该方法中我最终设置了参数。
所以... Excelheader 进入组合框,具体取决于您在其中选择的内容,它会创建包含所选行值的列表。
希望大家理解。
现在...我的问题在哪里?
当我搜索类型系列名称或实例参数并设置类型参数时,它适用于所有类别而没有任何错误。
1. 当我尝试设置实例参数时(不管我的搜索设置是什么),它适用于所有“正常”系列,但不适用于系统系列(例如墙壁、地板、管道等)。没有错误,只是没有任何反应 为什么?我似乎无法为系统系列设置实例参数。
2. Roofs、Stairs、CurtainPanels 和 GenericModel 在我搜索类型参数时出现问题 错误类似于“对象引用未设置为对象实例”。只有这 4 个类别,我想设置什么并不重要......但是当我搜索 family-/typeNAME 或 Instance-Parameter 时,我可以设置类型或实例并且它可以工作(sysfam 的实例除外)。
3.当我尝试搜索并设置一个实例参数时,它适用于所有类别,除非一面墙不包含搜索值......这真的就足够了,一堵墙没有搜索参数值,一切都会被取消。
我还有其他一些小问题...但我希望有人可以帮助我解决这些问题...我将非常感谢
问候,祝你有美好的一天或晚上:)
菲利普
【问题讨论】: