Синтаксис Revit API. Режим траектории электрической цепи
Главная › Форумы › Задать вопрос › Синтаксис Revit API. Режим траектории электрической цепи
- В этой теме 8 ответов, 3 участника, последнее обновление 6 лет, 5 месяцев назад сделано
ИваСерж.
-
АвторСообщения
-
Добрый день, господа.
Прошу научить синтаксису общения со свойством ElectricalSystem.CircuitPathMode (http://www.revitapidocs.com/2018/78b13087-63d8-090e-92ab-024d06717903.htm). Это появилось в 18 ревите и по сути это переключатель двух режимов расчета длины цепи: “Наиболее удалённое устройство” и “Все устройства”. Желаю прописать всем моим цепям “Все устройства”.
Уважаемый Хасан Мамаев учил исследовать мир функцией dir(), но я не втащил:
dir демонстрирует наличие сущностей (в виде гномиков?) 0) AllDevices и 4) FarthestDevice.
попробовал .CircuitPathMode.Set(“AllDevices”)), получил AttributeError: ‘ElectricalCircuitPathMode’ object has no attribute ‘Set’
Да, нужно создать и открыть транзакцию. Но вопрос вроде бы не в этом.
Спасибо, но не сработало(
http://www.revitapidocs.com/2018.1/ee98a836-6a40-db03-ef1e-655424d04a9a.htm – вероятно, нужно присваивать значение, приведенное к типу ElectricalCircuitPathMode Enumeration? Как это сделать? Или я выдумываю?
То же самое: expected name
У меня все получилось и работает.
Прошу применять.
https://pastebin.com/yYgsaaZFСпасибо, ИваСерж. Изучив ваш код имею следующее.
Разобрался с ошибкой expected name – возникала из-за того, что я аппендил в свой список результат присваивания.
Способ транзакции, взятый мной из уроков по RPS, срабатывает один раз, после чего выдаёт:“Предупреждение:IronPythonEvaluator.EvaluateIronPythonScript операция не выполнена.
Traceback (most recent call last):
File “<string>”, line 19, in <module>
Exception: Starting a new transaction is not permitted. It could be because another transaction already started and has not been completed yet, or the document is in a state in which it cannot start a new transaction (e.g. during failure handling or a read-only mode, which could be either permanent or temporary).”Такой способ показался мне прикольным из-за возможности видеть в списке Ctrl+Z именованную операцию:
Традиционный способ через TransactionManager (его можно аналогично именовать?) у меня сработал, причём вне цикла
Скажите, ваша проверка на 28 строке – это перфекционизм или необходимость?
По транзакциям ничего не могу посоветовать.
Надо проэксперементировать с subtransaction и TransactionGroupПроверка проводится для попытки облегчить работу с большим количеством сетей.
Я проверил на своем текущем проекте – у меня всего 300 цепей – без проверки справляется.
Что будет, если сетей будет больше 1000?
Скрипт изначально должен разрабатываться с учетом оптимизации работы памяти.А, забыл. UnwrapElement не работает со списками – будет проблема.
Правильнее анврапать элемент уже в теле цикла, а не в начале весь список.for cir in cirs:
cirUnw = UnwrapElement(cir) -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.