Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Bazinga от 03-04-2018, 17:54:34

Название: Работа со встроенными семействами
Отправлено: Bazinga от 03-04-2018, 17:54:34
Как можно вытащить экземпляры встроенных семейств в проекте?
Есть варианты с Floor, Ceiling, Wall, но такие способы не выполняются к классу Арматура.
Добраться до необходимых семейств смогла только через
Код - C# [Выбрать]
  1. var filteredElementCollector = new FilteredElementCollector(document).WhereElementIsElementType().OfCategory(BuiltInCategory.OST_FabricReinforcement);

Как перейти к конкретным экземплярам в проекте?
Название: Re: Работа со встроенными семействами
Отправлено: Александр Пекшев aka Modis от 03-04-2018, 18:09:18
У одиночного арматурного стержня категория OST_Rebar. Также вы можете указывать для FilteredElementCollector конкретный класс
Код - C# [Выбрать]
  1. new FilteredElementCollector(document).OfClass(typeof(Rebar))
  2. //или
  3. new FilteredElementCollector(document).OfClass(typeof(RebarInSystem))
Название: Re: Работа со встроенными семействами
Отправлено: Bazinga от 04-04-2018, 09:17:04
Александр Пекшев aka Modis, не было такого в том то и дело... А надо было подрубить библиотечку Autodesk.Revit.DB.Structure; И тогда все магическим образом отображается и работает.
Спасибо, как всегда выручаете!
Название: Re: Работа со встроенными семействами
Отправлено: Александр Пекшев aka Modis от 04-04-2018, 12:35:50
Вы плаваете в понятиях и поэтому не все ваши вопросы удается сразу понять.
Например, в своём вопросе вы пишите - Как перейти к конкретным экземплярам в проекте? - но при этом прикладываете такой пример кода:
Код - C# [Выбрать]
  1. var filteredElementCollector = new FilteredElementCollector(document).WhereElementIsElementType().OfCategory(BuiltInCategory.OST_FabricReinforcement);
Уясните для себя раз и навсегда что такое типоразмер! Если вы хотите найти все экземпляры, то ваш код ошибочен, так как вы указали в нём WhereElementIsElementType - что по-русски прям так и переводится "только типоразмеры". Т.е. ваш код никак не сможет найти экземпляры.
Дальше вы пишите:
А надо было подрубить библиотечку Autodesk.Revit.DB.Structure
Опять неверно. Подключить к проекту вам нужно лишь две библиотеки - RevitAPI.dll и RevitAPIUI.dll - это минимальный необходимый набор. А вот строка using Autodesk.Revit.DB; просто позволяет использовать указанное пространство имён, чтобы в коде писать меньше букв)). Вот, например, почитайте (https://metanit.com/sharp/tutorial/3.25.php). При этом, если вы используете Visual Studio, то IntelleSense должна вам помогать все это делать
Название: Re: Работа со встроенными семействами
Отправлено: Bazinga от 09-04-2018, 11:56:36
Александр Пекшев aka Modis, от любого типоразмера можно перейти к конкретным его экземплярам в проекте. Код, который привела, делала по типу примера.