воскресенье, 18 октября 2015 г.

[Revit] - Семейства категории "Каркас несущий" и границы помещений.

На днях мне задали вопрос: можно ли сделать так, чтобы семейства категории "Каркас несущий" (далее Балка.rfa) имели границу помещения?

Первым делом пошёл в гуглить. Тишина. В том числе и на зарубежных форумах. Ну или я не спец по поиску. Нашёл только аналогичный вопрос в группе ВКонтакте.

Здесь я написал порядок поиска решения вопроса, но получилось нудно и очень много букв, я их безжалостно вытер, оставил только про гугл.

После некоторых изысканий вывел такой алгоритм:

1. Создаём семейство категории "Перекрытия".  Как это обычно делается в Revit - создаётся оно не очевидным путём: 
     - создаём модель в контексте категории "Перекрытия"
     - создаём произвольное выдавливание
     - создаём из него группу
     - не выходя из режима редактирования модели в контексте 
        R -> Сохранить как... -> Библиотека -> Группа 
      
После сохранения получаем загружаемое семейство категории "Перекрытия" (далее Граница помещения - перекрытия.rfa). 

2. Редактируем семейство , задаём в нём опорные плоскости и параметры для управления длиной/шириной/высотой, задаём параметры L, B, H как параметры экземпляра.

UPD: Семейство нужно сделать общим


3. Вставляем семейство Граница помещения - перекрытия.rfa в Балка.rfa, задаём нужные параметры L, B, H. (я связал их с параметрами семейства Балка.rfa - Длина, b, h)



4. Вставляем семейство Балка.rfa в проект и любуемся результатом:

Если семейство Балка.rfa уже было загружено в проект, то границы помещения могут не обновиться сразу же. Для этого достаточно переместить балку в любом направлении и вернуть обратно. Также не забываем включить расчёт объёмов помещений.

Ещё я прокинул параметр "Граница помещения" семейства Граница помещения - перекрытия.rfa в семейство Балка.rfa, чтобы можно было управлять границей помещения для каждого элемента в проекте таким же образом, как это делается для стандартных элементов - таких как стены, перекрытия или крыши.

На следующий день выяснилось, что проектировщики выполнили с помощью семейств на основе "Каркас несущий" железобетонное сборное здание и архитекторы не могут размещать помещения в своём проекте.

Для стен принцип такой же. Только чтобы всё было по фен-шую сделал новое семейство границы помещения на основе "Стены" и вставил его в семейства сборных стеновых панелей.


 В результате получил возможность размещения помещений в сборных зданиях.

По идее можно выполнить семейство произвольной формы для вырезания из объёма помещения.

UPD: здесь можно посмотреть ещё приёмы работы с панелями в сборных зданиях

суббота, 3 октября 2015 г.

[Revit API] - Перебор элементов

Не так давно обнаружил, что можно перебирать элементы без приведения объекта FilteredElementCollector к нужному типу - Element или FamilyInstance.
Не был уверен, что это правильно, пока не нашёл статью Building Coder'а: Change Type, Iterate Elements, Create Family
Виктор Чекалин выполнил перевод на сайте adn-cis.org




среда, 30 сентября 2015 г.

[Revit] - Как спартизанить рабочие наборы

ВНИМАНИЕ! Применять с осторожностью! Только в том случае, если владелец рабочих наборов не в сети и не имеет доступа к модели!
 
 Понадобились рабочие наборы, а владелец отсутствует за рабочим местом. И как обычно они нужны срочно. Что делать в таком случае? Идти на рабочее место, включать компьютер, загружать Revit, открывать модель, освобождать рабочие наборы. А если рабочее место на другом этаже?
Конечно ходьба полезна для здоровья, но я предпочитаю партизанить занятые кем-то рабочие наборы по следующей схеме:

1. Делаю запрос на редактирование элемента
2. Копирую имя пользователя из запроса
3. Открываю второй Revit
4. R -> Параметры -> меняю имя пользователя
5. Открываю проект с созданием нового локального файла. При загрузке отключаю все рабочие наборы (работать в модели не будем, только предоставим доступ к элементам или РН)
6. Отвечаю на запрос или освобождаю требуемые РН.
7. Закрываю проект без сохранения и синхронизации. На запрос об освобождении РН отвечаю "Сохранить принадлежность всех элементов и рабочих наборов"
8. Параметры -> меняю имя пользователя на своё (иначе при следующей загрузке Revit подхватит изменённое)
9. Закрываю второй Revit.
10. Если были освобождены рабочие наборы, то занимаю их в своём локальном файле.

Почему не требуется делать синхронизацию с хранилищем после освобождения рабочих наборов?
Дело в том, что информация о занятых рабочих наборах передаётся по умолчанию через каждые 5 секунд без участия пользователя. Настраивается в параметрах Revit, пункт "Частота обновлений при совместной работе".

пятница, 18 сентября 2015 г.

[Revit] - Неактивна кнопка "Информация о проекте"

Вопрос с формума dwg.ru

Решение тут

Если вкратце по-русски:

Файл проекта сломался

Решение:

1. Открыть испорченный файл
2. В той же сессии Revit создать новый проект, используя стандартный шаблон Revit
3. Переключиться в испорченный файл
4. Перейти на Управление->Параметры->Копировать стандарты проекта и скопировать стандарты проекта из нового исправного файла проекта.
5. Кнопка "Информация о проекте" в испорченном файле должна стать активна.
6. Занесите информацию о проекте снова при необходимости.


пятница, 28 августа 2015 г.

[Revit] - Почему разрез по первому этажу виден на втором?

В продолжение сообщения Александра Зуева: Скрытие ненужных разрезов  

Проставил разрезы на первом этаже. Так почему же они лезут на второй?
Поначалу я мучился, делал фильтры по уровням, что несколько напрягало.
В голове вертелось - наверняка есть способ попроще.

[Revit] - отдельная ветка для Revit на dwg.ru

Наконец-то администраторы создали отдельную ветку для Revit:

Форум DWG.RU > Программное обеспечение > Прочее ПО от Autodesk > Revit

Что удивило - первая тема по Revit аж от 2004-го года!

Revit 7. Новые возможности.



четверг, 13 августа 2015 г.

[Revit] - Гидроизоляция крышей

Интересный способ нанесения гидроизоляции предложил Александр Зуев - тыц

среда, 5 августа 2015 г.

[Revit] - Пользовательская таблица в Revit

Нашёл у Matthew Nelson'a способ создания пользовательской таблицы (к сожалению ссылка на его сообщение умерла).

Вкратце:

- создаём спецификацию, добавляем какой-нибудь параметр (я выбираю текстовый)
- в фильтре задаём значение, которое ни при каких условиях не будет назначено ни одному элементу. Критерий фильтрации - "равно" и вбиваю какую-нибудь белиберду.
Цель - отобразить только название спецификации.
- на вкладке "Вид" убираем отображение заголовков
- переходим к виду со спецификацией, выбираем заголовок, нажимаем на кнопку "Очистить ячейку"

Далее можно добавлять столбцы, строки, менять их размер и границы, объединять/разделять ячейки.
Минус таблицы - нет возможности копировать столбцы/строки.

Для себя нашёл применение при создании таблицы с исходными данными для проектирования фундаментов.

UPD: также этот способ был описан в блоге Whats Revit Wants ещё в 2013-м году.

UPD: Всё-таки есть хоть какая-то возможность связи с моделью.
В ячейки заголовка таблицы можно проставить значения параметров категории "Сведения о проекте"
Выбрать ячейку, далее на вкладке "Изменить спецификацию/количества" на панели "Параметры" выбрать из выпадающего списка пункт "Сведения о проекте".


После этого в нижнем списке будут доступны для выбора параметры категория "Сведения о проекте".


вторник, 14 июля 2015 г.

[Revit] - При экспорте в DWG теряется штриховка стен

Поэкспериментировал на чистом файле - экспортирует как надо, значит дело не в настройках экспорта.
После недолгих изысканий нашёл причину - в настройках переопределения видимости/графики вида для стен была выставлена прозрачность 100%. Выставил в ноль - экспортируется как положено.

вторник, 9 июня 2015 г.

[API Revit] - Как получить BuiltInCategory элемента

Если попытаться извлечь категорию элемента через elem.Category.Name, то получаем текстовое представление категории так как видит пользователь. Например: "Электрооборудование" или "Оборудование".

Ориентироваться на такое имя нежелательно - есть риск изменения имени категории при локализации очередной версии Revit.

Просмотреть значение встроенной категории можно с помощью Lookup в строчке "Category".
Немного порывшись в исходниках нашёл метод, отвечающий за выдачу параметров категории:


((BuiltInCategory)cat.Id.IntegerValue).ToString() и есть внутреннее наименование категории элемента в текстовом виде.