1

我正在尝试将数据从 Excel 导入 Revit Python Shell,以验证 Revit 文件中是否存在用于选定对象类别的某些参数。但是我在第一个“for”循环中遇到了一些问题(查看 excel 表的第一列并获取类别)。实现我想要的第一步是获取我想要分析的类别的所有元素。我已经尝试了很多东西,但我总是以图片中显示的这个错误告终(得到字符串而不是内置类别)。我搜索了一种将字符串转换为内置类别的方法,但我没有找到任何东西。

有谁知道如何处理它?有没有办法将字符串转换为内置类别,或者是否有另一种解决方案?

谢谢! 图片 - 截图

4

2 回答 2

1

这个问题更像是一个 C# 而不是 Revit API 问题。搜索“ c# enum string convert ”,它会出现,例如,将字符串转换为 C# 中的枚举。在这种情况下:

BuiltInCategory bic = BuiltInCategory.Parse( "some_string" );
于 2020-06-18T18:49:52.663 回答
0

看起来问题出在以下几行:

 fec = FilteredElementCollector(doc)
 cat = fec.OfCategory(i.Value2)

在这种情况下,i.Value2is a string,但正如您之前评论的那样fec.OfCategory想要 a 。BuiltInCategory

杰里米的回答会将 a 转换string为 a BuiltInCategory(感谢杰里米,我不知道你能做到这一点!)像这样: bic = BuiltInCategory.Parse(BuiltInCategory, "OST_PlumbingFixtures")

因此,在您的示例中,它将是:

fec.OfCategory(BuiltInCategory.Parse(BuiltInCategory, i.Value2.split('.')[1]))

于 2020-06-18T21:15:00.857 回答