Как превратить 'string' в 'BuiltInCategory' в Revit Python Shell при чтении файла Excel - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь импортировать данные из Excel в Revit Python Shell, чтобы проверить, существуют ли какие-либо параметры в файле Revit для выбранных категорий объектов. Но у меня возникли проблемы с первым «for» l oop (загляните в первый столбец таблицы Excel и получите категории). Первым шагом к достижению того, чего я хотел, было бы получение всех элементов категорий, которые я хочу анализировать. Я много чего пробовал, но всегда получаю эту ошибку, показанную на картинке (вместо встроенной категории есть строка). Я искал способ преобразования строки во встроенные категории, но ничего не нашел.

Кто-нибудь знает, как с этим бороться? Есть ли способ превратить строку во встроенную категорию или есть другое решение для этого?

Спасибо! картинка - скриншот

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Этот вопрос скорее C#, чем вопрос API Revit. Найдите 'c# enum string convert ', который появляется, например, преобразовывает строку в перечисление в C#. В этом случае:

BuiltInCategory bic = BuiltInCategory.Parse( "some_string" );
0 голосов
/ 19 июня 2020

Похоже, проблема в следующих строках:

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

В этом случае i.Value2 - это string, но fec.OfCategory требует BuiltInCategory, как вы уже комментировали ранее. .

Ответ Джереми преобразует string в BuiltInCategory (спасибо, Джереми, я понятия не имел, что вы можете это сделать!) Вот так: bic = BuiltInCategory.Parse(BuiltInCategory, "OST_PlumbingFixtures")

Итак, в вашем примере это будет:

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

...