tag:blogger.com,1999:blog-54109906895132821152024-03-27T20:03:30.736+03:00Andrey Stroitel'Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.comBlogger88125tag:blogger.com,1999:blog-5410990689513282115.post-21251517340487128512024-03-13T21:36:00.006+03:002024-03-13T23:27:12.006+03:00 [Revit] Копирование планов этажей и потолков <div style="text-align: center;"><span style="font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_ftl-ICpS9hajshoQbBMCEp9PoaSdQ7QgcfHAZZloUr_WRQ76dUePYi49-_4DrbXPQUX-JZnZ0xoJEBkH0YhLy8d_P5OiE0dT6M1k7IA6PKC8_61C0Tf5-CR2eD0BGG2pWJjgv56lVf-mmXBDJtziBmoq_Sj3Gj0jXiycYvDwOMxaLfMUPGvBL3iFNeOr/s804/ksnip_20240313-202506.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="804" data-original-width="531" height="617" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_ftl-ICpS9hajshoQbBMCEp9PoaSdQ7QgcfHAZZloUr_WRQ76dUePYi49-_4DrbXPQUX-JZnZ0xoJEBkH0YhLy8d_P5OiE0dT6M1k7IA6PKC8_61C0Tf5-CR2eD0BGG2pWJjgv56lVf-mmXBDJtziBmoq_Sj3Gj0jXiycYvDwOMxaLfMUPGvBL3iFNeOr/w407-h617/ksnip_20240313-202506.png" width="407" /></a></span></div><div style="text-align: left;"><span style="font-size: medium;"><span>Гуглю</span> - нашёл только плагины, которые копируют виды в текущем проекте. </span></div><div style="text-align: left;"><span style="font-size: medium;">Странно... очень востребованная функция и ни одного решения... </span></div><div style="text-align: left;"><span style="font-size: medium;"> </span></div><div style="text-align: left;"><span style="font-size: medium;">Ну да ладно, у меня есть <strike>микроскоп</strike> молоток, а вот гвозди.</span></div><div style="text-align: left;"><span style="font-size: medium;"> </span></div><div style="text-align: left;"><span style="font-size: medium;">Накидал макрос копирования и вставки видов:</span></div><div style="text-align: left;"><span style="font-size: medium;"> </span><span style="font-size: medium;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/UlN2nktQUxw" width="320" youtube-src-id="UlN2nktQUxw"></iframe></span></div><p><span style="font-size: medium;"> </span></p><div style="text-align: left;"><span style="font-size: medium;">Перехожу в модель с планами, в диспетчере проекта выбираю виды, запускаю макрос копирования.</span></div><div style="text-align: left;"><span style="font-size: medium;">Затем перехожу в другую модель и запускаю макрос вставки.</span></div><div style="text-align: left;"><span style="font-size: medium;">Созданы соответствующие виды, границы подрезки соответствуют исходным.</span></div><div style="text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-size: medium;">Теперь бы оформить плагин, из макросов не очень удобно запускать. </span></div><div style="text-align: left;"><span style="font-size: medium;">Надо нарисовать иконки... Не люблю рисовать. Пойду-ка поищу, может всё-таки есть что-нибудь готовое?</span></div><div style="text-align: left;"><span style="font-size: medium;"> </span></div><div style="text-align: left;"><span style="font-size: medium;">В
<b> ModPlus</b> есть плагин копирования видов, но копирование производится
только в рамках одной модели. С помощью плагина копирования листов
возможно перенести листы, чертёжные виды, спецификации и изображения, но
виды в плане не передаются.</span></div><div style="text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-size: medium;">Перехожу к <b>DiRoots</b>.</span></div><div style="text-align: left;"><span style="font-size: medium;">В <b>DiRootsOne</b> ничего похожего нет, а вот в <b>DiStem</b> есть модуль <b>Project Standarts</b>: </span></div><div style="text-align: left;"><span style="font-size: medium;"><a href="https://docs.distem.diroots.com/docs/ui-components/Project-standards.html">https://docs.distem.diroots.com/docs/ui-components/Project-standards.html</a></span></div><div style="text-align: left;"><span style="font-size: medium;"> </span></div><div style="text-align: left;"><span style="font-size: medium;">Копирует элементы из одной модели в другую, в том числе и виды.</span></div><div style="text-align: left;"><span style="font-size: medium;">Есть недостаток - при копировании не передаётся произвольная подрезка вида:</span></div><p><span style="font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUBmTsnb-iKKKcbiu_2LcNlTgwY8vgLKLtIOq4pSnWKGrVWwB7Hhx0pLg_4__ZudqcjSuF0ES-aE6lzTrlPJs1cnhCJACxqBZBB_apJrnqMBk4xjnazQXT5KD4JUOJgMjOQ3mmf8xEJhcD_cISCW_V_2nRsvMSFmDZQdxeKJZX_FbljPSOrpJpgwkVXfyt/s1583/Untitled.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="786" data-original-width="1583" height="299" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUBmTsnb-iKKKcbiu_2LcNlTgwY8vgLKLtIOq4pSnWKGrVWwB7Hhx0pLg_4__ZudqcjSuF0ES-aE6lzTrlPJs1cnhCJACxqBZBB_apJrnqMBk4xjnazQXT5KD4JUOJgMjOQ3mmf8xEJhcD_cISCW_V_2nRsvMSFmDZQdxeKJZX_FbljPSOrpJpgwkVXfyt/w602-h299/Untitled.png" width="602" /></a><br /></span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Вернулся к <b>ModPlus</b> и - о, чудо! Есть плагин "Копировать элементы":</span></p><p><span style="font-size: medium;"><a href="https://modplus.org/ru/revitplugins/mprcopyelementstoopendocuments">https://modplus.org/ru/revitplugins/mprcopyelementstoopendocuments</a></span></p><p><span style="font-size: medium;">Кроме копирования элементов модели возможно копировать и виды.</span></p><p><span style="font-size: medium;">Границы вида передаются корректно: </span></p><p><span style="font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArA1DwvnEREBXarMsnk1QLuy5-lgUIEwIvc5BrzkvSuglZ0l5PsWts6J5WQt0OEO5g0AFrtXB7BJsjXhQPsdeCSk6PJB1TYNA3iGUvxyDJEUQbjbpbhGUkE7yRBCOXpZUb8uQkVrDajeljv-9QYFT0pjY2v08dFkJie4tvrZ6pDMPaFhLT74ieqaOWyFu/s1583/ksnip_20240313-205930.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="789" data-original-width="1583" height="295" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArA1DwvnEREBXarMsnk1QLuy5-lgUIEwIvc5BrzkvSuglZ0l5PsWts6J5WQt0OEO5g0AFrtXB7BJsjXhQPsdeCSk6PJB1TYNA3iGUvxyDJEUQbjbpbhGUkE7yRBCOXpZUb8uQkVrDajeljv-9QYFT0pjY2v08dFkJie4tvrZ6pDMPaFhLT74ieqaOWyFu/w595-h295/ksnip_20240313-205930.png" width="595" /></a></span></p><span style="font-size: medium;"><br /></span><p><span style="font-size: medium;">Здесь я показываю работу плагинов <b>DiStem</b> и <b>ModPlus</b>:</span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/oIIqXaidhU0" width="320" youtube-src-id="oIIqXaidhU0"></iframe></span></div><p><span style="font-size: medium;"> </span></p><p><span style="font-size: medium;">Чуть позже нашёл как можно скопировать планы без использования плагинов:</span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"></span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"></span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/dieNTGrimkI" width="320" youtube-src-id="dieNTGrimkI"></iframe></span></div><p><span style="font-size: medium;">В модели с планами этажей и потолков:</span></p><p><span style="font-size: medium;">1. Открыть необходимые виды, включить видимость границы подрезки</span></p><p><span style="font-size: medium;">2. Выбрать границы подрезки видов с зажатым Ctrl</span></p><p><span style="font-size: medium;">Переключиться в другую модель, выполнить вставку из буфера обмена с выравниванием по выбранным уровням, выбрать какой-нибудь уровень.<br /></span></p><p><span style="font-size: medium;"> </span></p><p><span style="font-size: medium;">Другу больше всего пришёлся по душе вариант копирования средствами Revit</span></p><p><span style="font-size: medium;">Успехов!</span></p>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-42998097097097982712024-03-05T21:49:00.002+03:002024-03-05T21:49:31.335+03:00[Revit API] Макросы в студию!<p>Показываю как открывать макросы в Visual Studio и использовать Git для контроля изменений в макросах</p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/ZF0rk4Q8PEU" width="320" youtube-src-id="ZF0rk4Q8PEU"></iframe></div><br /> Если совсем-совсем коротко:<p></p><p>макросы приложения в отличие от макросов проекта хранятся не в документе Revit, а в папке C:\ProgramData\Autodesk\Revit\Macros</p><p><br /></p><p>Успехов!<br /></p>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-2617311288687055132024-03-03T16:33:00.007+03:002024-03-07T01:10:41.047+03:00[Revit - Электрика] Трёхфазный резерв<p> Показываю как для резервной цепи задать три полюса:<br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/0RXxYT-qvOg" width="320" youtube-src-id="0RXxYT-qvOg"></iframe></div><p></p><p>Успехов!<br /></p>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-61365403437946331522024-02-18T11:28:00.011+03:002024-03-13T22:27:00.041+03:00[Слёзы Revit] - Двигаемся с осторожностью<p>Из этого видео узнаете из-за чего могут отваливаться размеры и марки,
электрические потребители
выпадают из цепей, семейства на основе грани теряют основу а отцы семейств теряют покой и сон<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/bzdv7XRQ1Z8" width="320" youtube-src-id="bzdv7XRQ1Z8"></iframe></div><br /> Успехов!<p></p>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-40244586763811537442024-02-03T17:49:00.003+03:002024-02-04T16:30:56.376+03:00[Слёзы Revit] - Нюансы схем обозначения цепей<p> </p><div class="BlockRenderer_markup_Wtipg">Показываю пару моментов с которыми можно столкнуться при использовании схем обозначения цепей</div><div class="BlockRenderer_markup_Wtipg"> </div><div class="BlockRenderer_markup_Wtipg"><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/EjI07ZEfbig" width="320" youtube-src-id="EjI07ZEfbig"></iframe></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /> Успехов!</div>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-26929355687143694792024-01-31T08:31:00.008+03:002024-01-31T08:31:00.141+03:00[Revit API] - Починил пару ранее опубликованных макросов<p>API немного поменялся, макросы перестали работать. <br /></p><p>Ссылки на сообщения: <br /></p><p><a href="https://fazleev.blogspot.com/2015/11/revit-api.html">[Revit API] - Запись данных в ключевую спецификацию</a></p><p><a href=" https://fazleev.blogspot.com/2015/11/revit-api_25.html">[Revit API] - Граница подрезки вида</a></p><p>rvt файлы с макросами приведены в порядок, ссылки на скачивание в соответствующих сообщениях</p><p>Успехов! </p>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-40970495129517219232024-01-27T18:43:00.003+03:002024-01-27T18:43:53.762+03:00[Revit - Электрика] - Схемы обозначения цепей<p>В этом коротком видео показываю как использовать схемы обозначения цепей:<br /></p><p> <br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="502" src="https://www.youtube.com/embed/5AlHdYpfDaI" width="604" youtube-src-id="5AlHdYpfDaI"></iframe></div><p></p><p>Успехов!<br /></p>Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-29503216552126957672020-04-04T15:06:00.003+03:002020-04-07T01:40:19.034+03:00[#лучшедома] - мои инструменты для отслеживания рабочего времени и отдыха<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">С начала этого года работаю больше из дома. Хочу поделиться инструментами, которые помогают мне при работе. Часть из них использую годами, с некоторыми познакомился совсем недавно</span><br />
<br />
<h4 style="background-color: white; color: #666666; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; margin: 0px; position: relative; text-align: left;">
Flip by Rinasoft Inc.</h4>
<div style="font-family: "trebuchet ms", trebuchet, verdana, sans-serif; font-size: 13.2px;">
<span style="background-color: white;"><span style="color: #666666;"> Таймер для концентрации и учёбы. Приложение доступно для</span><span style="color: white;"> </span></span><a href="https://apps.apple.com/ru/app/flip-focus-timer-for-study/id1435127190" target="_blank"><b><span style="background-color: white; color: #0b5394;">iOs</span></b><span style="background-color: white; color: #888888;"> </span></a><span style="background-color: white; color: #666666;">и </span><a href="https://play.google.com/store/apps/details?id=kr.co.rinasoft.yktime&hl=ru" style="background-color: white;" target="_blank"><b><span style="color: #0b5394;">Android</span></b></a><span style="background-color: white; color: #666666;">.</span></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Ранее пробовал таймер Pomodoro, но 25-минутного периода оказалось маловато. Как правило, только для включения в контекст задачи и раскачаться мне необходимо 5-15 минут.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
С Flip всё очень просто - задал список дел для ежедневного выполнения, для запуска таймера выбрал задачу и перевернул телефон. Пока не закончился подход - телефон не трогаю. Как только беру телефон, то есть около 15 секунд для того чтобы перевернуть его обратно и не засчитался перерыв в работе. В этом есть некоторый элемент игры.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Ежедневную работу разделил на три подхода по два часа в высокой концентрации, этого времени вполне хватает для цельного куска работы, по крайней мере есть где поставить точку для продолжения на следующем подходе. За два часа не успеваю устать, оставшиеся два часа уходят на перерывы и на рутину, не поддающуюся какому-либо планированию.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
В результате ежедневное использование смартфона сократилось с ужасных трёх-четрёх часов до 20-30 минут (конечно бывают дни когда доходит и до часа-полутора, но всё равно прогресс налицо). Формируется привычка не брать смартфон лишний раз, даже вне работы руки всё меньше тянутся к нему.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<h4 style="background-color: white; color: #666666; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; margin: 0px; position: relative; text-align: left;">
StayFree</h4>
<div style="background-color: white; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; font-size: 13.2px;">
<span style="color: #666666;"> Приложение для сбора статистики использования смартфона. Доступно для </span><a href="https://play.google.com/store/apps/details?id=com.burockgames.timeclocker&hl=ru" target="_blank"><span style="color: #0b5394;"><b>Android</b></span></a><span style="color: #666666;">.</span></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
С ним всё просто - собирает статистику по использованию программ на смартфоне.<br />
В платной версии доступен отчёт за неделю, круговая диаграмма по отдельным приложениям. </div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Из минусов приложения - время от времени сбрасывается недельная статистика.<br />
<br /></div>
<h3 style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; margin: 0px; position: relative;">
</h3>
<h4 style="background-color: white; color: #666666; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; margin: 0px; position: relative; text-align: left;">
ManicTime</h4>
<div style="background-color: white; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; font-size: 13.2px;">
<span style="color: #666666;"> Десктопное приложение для </span><a href="https://www.manictime.com/" target="_blank"><span style="color: #0b5394;"><b>Windows</b></span></a><a href="https://www.manictime.com/" style="color: #888888;" target="_blank"> </a><span style="color: #666666;">- сбор статистики использования компьютера.</span></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Использую для контроля общего времени работы за компьютером и времени работы над конкретными задачами.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Мне очень понравилась функция автометок (доступна в платной лицензии, пришлось раскошелиться). Натравил автометки на отдельные сайты и на программы. Так в автоматизированном режиме идёт разметка по тегам на рабочее / нерабочее использование компьютера.<br />
<br />
Использую года четыре. В своё время очень помогло для составления еженедельных отчётов о проделанной работе. В конце дня расставлял тэги на затраченное время, в конце недели выполнял экспорт таблицы в Excel и заполнял отчёт по форме.<br />
<br /></div>
<h3 style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; margin: 0px; position: relative;">
</h3>
<h4 style="background-color: white; color: #666666; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; margin: 0px; position: relative; text-align: left;">
файл hosts</h4>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Если заметил сайты, которые отнимают у меня значительное время, либо идут частые непроизвольные обращения (просмотр новостей и прочие сайты, не относящиеся к работе) то на рабочей машине прописываю их в hosts.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Файл расположен по пути:</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<div>
"C:\Windows\System32\drivers\etc\hosts" </div>
<div>
<br /></div>
<div>
прописал в нём:</div>
<div>
<br /></div>
<div>
127.0.0.1 news.yandex.ru<br />
127.0.0.1 vk.ru<br />
127.0.0.1 facebook.com</div>
<div>
127.0.0.1 pikabu.ru</div>
<div>
127.0.0.1 www.yaplakal.com</div>
<div>
<br /></div>
<div>
и так далее.</div>
<div>
<br /></div>
<div>
При попытке зайти на непрофильный сайт выводится пустое окно.<br />
<br />
Конечно можно таким же образом убрать исключения, но мне лень это делать )</div>
</div>
<div style="background-color: white; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; font-size: 13.2px;">
<div style="color: #666666;">
<b><br /></b>
</div>
<h3 style="color: #666666; margin: 0px; position: relative;">
<b>Счётчик недосыпа</b></h3>
<span style="color: #666666;">Приложение доступно для </span><a href="https://play.google.com/store/apps/details?id=com.adventureapps.sleepdebt&hl=ru" target="_blank"><span style="color: #0b5394;"><b>Android</b></span></a></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<div>
<br /></div>
<div>
При увлечённой работе опасно потерять грань между работой и отдыхом. Если уработаться, то немудрено перегореть. Даже если не произошло выгорания, то после ночных марафонов восстановление занимает время.<br />
На мой взгляд по уровню снижения производительности недосыпание хуже алкоголя - усталость подкрадывается незаметно, потом приходит чувство вины за недоработки, создаётся замкнутый круг.</div>
<div>
<br /></div>
<div>
Приложение позволяет контролировать время сна. Также очень простое - задал желаемую планку, необходимые настройки, далее собирается статистика по времени сна, выдаются навязчивые сообщения о том что пора бы уже поспать.</div>
</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<h4 style="background-color: white; color: #666666; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; margin: 0px; position: relative; text-align: left;">
Заключение</h4>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Таким образом выстроена сбалансированная система, которая с одной стороны помогает мне достигать лучшей концентрации, с другой - не убиться от переработки.<br />
Не могу сказать что каждый день придерживаюсь системы на 100%, бывают и спады производительности. В такие периоды необходимо ослабить контроль, без фанатизма.<br />
Главное для меня в подборе приложений - они просты, требуют незначительной начальной настройки, максимум что нужно сделать - проанализировать статистику и при необходимости принимать меры.</div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
<br /></div>
<div style="background-color: white; color: #666666; font-family: "Trebuchet MS", Trebuchet, Verdana, sans-serif; font-size: 13.2px;">
Успехов!</div>
</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com1tag:blogger.com,1999:blog-5410990689513282115.post-44761361576615703032020-01-17T11:33:00.000+03:002020-01-20T09:35:34.060+03:00[Revit API] - UniqueId в зазеркалье<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
Согласно документации Revit API для хранения информации об элементах во внешних хранилищах данных рекомендуется использовать UniqueId.</div>
<div>
Это надёжно, UniqueId остаётся неизменным в пределах модели в отличие от ElementId. </div>
<div>
<br />
Однако UniqueId всё же может меняться в процессе работы в модели при казалось бы безобидной операции - "Зеркало".<br />
<br /></div>
<div>
Выберите какой-нибудь элемент, запишите его UniqueId и ElementId:</div>
<div>
Я выбрал балку, вот её свойства:<br />
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhyphenhyphenfCIjBTUG4pUpcPat1qZ3RyTQvV9TPgizNrbCVfmVCqmE0iFj2j6xK3gifrZV-g7KsnlWgIQ08iLsEJcTlqOuQhImKdv59IMehPVMdY3XTAMJ_54OBQc4UA2dbtFHoMngZuQf83glxy/s1600/01.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="529" data-original-width="807" height="419" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhyphenhyphenfCIjBTUG4pUpcPat1qZ3RyTQvV9TPgizNrbCVfmVCqmE0iFj2j6xK3gifrZV-g7KsnlWgIQ08iLsEJcTlqOuQhImKdv59IMehPVMdY3XTAMJ_54OBQc4UA2dbtFHoMngZuQf83glxy/s640/01.PNG" width="640" /></a></div>
<br /></div>
<div>
Затем примените команду "Зеркало". </div>
<div>
Перед заданием оси симметрии убираем галочку "Копировать" в панели параметров.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxyuUysQ-a-FhlOyZzaR6xFkzlzy2nfHzFv6M1FTZOFm8rN36lElQnAlJHD3wKnwyrVZ1fBeneDteYNIOeHt4A3Ir4Hd9FT-L01JuQ0md0a4QkzxcwcnqQFtEKugzxGTS7G7cRIYg2vBnj/s1600/00.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="125" data-original-width="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxyuUysQ-a-FhlOyZzaR6xFkzlzy2nfHzFv6M1FTZOFm8rN36lElQnAlJHD3wKnwyrVZ1fBeneDteYNIOeHt4A3Ir4Hd9FT-L01JuQ0md0a4QkzxcwcnqQFtEKugzxGTS7G7cRIYg2vBnj/s1600/00.PNG" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
UniqueId и ElementId элемента изменились после выполнения команды:<br />
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4DCEryNyr47xi-SvpYpNinQs8kNGTAU5T0jFrTxruupGtWnAoGtcfXIDf4TeZMZrDAA7mu9Z0F59h6KzarHUde7u6QP029xSSvdqkCjddyQCh1Civwhe2R_h3IjID_BT9k3_zGW8Ael_4/s1600/02.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="528" data-original-width="807" height="418" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4DCEryNyr47xi-SvpYpNinQs8kNGTAU5T0jFrTxruupGtWnAoGtcfXIDf4TeZMZrDAA7mu9Z0F59h6KzarHUde7u6QP029xSSvdqkCjddyQCh1Civwhe2R_h3IjID_BT9k3_zGW8Ael_4/s640/02.PNG" width="640" /></a></div>
<br />
На мой взгляд это явная недоработка, я не обнаружил описания такого поведения в документации. Рекомендаций для разрешения этой проблемы я не даю, зависит от конкретной задачи. Учитывайте эту особенность при разработке плагинов, где предполагается обновление элементов в пределах модели, либо работа с внешними источниками данных.<br />
<br />
Успехов!</div>
</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com4tag:blogger.com,1999:blog-5410990689513282115.post-769471960255049992018-12-25T21:23:00.000+03:002018-12-26T01:21:39.384+03:00Откуда крольчишка<div dir="ltr" style="text-align: left;" trbidi="on">
Как и обещал однажды, рассказываю.<br />
<br />
На AU 2014 я приобрёл известную книгу Ланцова:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglqAUGshf-XqKE6b_6phv1UzFZZhysEfeeVotymyiEcibdgOFpp5B7Z2yX5VkKQ4E0UBezjYKRM19Ust4igbCjVfw7vcHEhM4LCt4_JGXcgJ_iC4k9pIsgU-aKTnG8J36_p4uW2Ff1bWPn/s1600/Lantsov.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1051" data-original-width="814" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglqAUGshf-XqKE6b_6phv1UzFZZhysEfeeVotymyiEcibdgOFpp5B7Z2yX5VkKQ4E0UBezjYKRM19Ust4igbCjVfw7vcHEhM4LCt4_JGXcgJ_iC4k9pIsgU-aKTnG8J36_p4uW2Ff1bWPn/s320/Lantsov.jpg" width="246" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Если посмотреть со стороны корешка, то появляется кролик:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyREqoVa1Mf6nYEn1dqsIsn9aPQsARL-kE0bOVzHHH74sgDOrFioezKIVdjb4JldEAU5g2RtxKLFitUjmcK6F-LLoXiIYrmx0jsXEpKYGj12ig8cyW95ZIrM3mlgZPPhikyMjXVVRoJz_B/s1600/Lantsov2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="959" data-original-width="1280" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyREqoVa1Mf6nYEn1dqsIsn9aPQsARL-kE0bOVzHHH74sgDOrFioezKIVdjb4JldEAU5g2RtxKLFitUjmcK6F-LLoXiIYrmx0jsXEpKYGj12ig8cyW95ZIrM3mlgZPPhikyMjXVVRoJz_B/s320/Lantsov2.jpg" width="320" /></a></div>
<br />
Сперва использовал перевёрнутую иконку Revit, чуть позже Рома Митин добавил пару деталей и придал изображению завершённый вид:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Jfx34L3EwzJkQNC4OvTKufkvV5QR2X2L_hvR_zbvGjb_oCNaEMfoItmDMVH-wYgdpnilu4-u2PeQSq5cnIAwQaFgWFZ1_ZAmEs3-sDQWs1mzt4sBKndnOweYzz7MFZ-i5gxHO8sKoI3Y/s1600/Rabbit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="259" data-original-width="259" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Jfx34L3EwzJkQNC4OvTKufkvV5QR2X2L_hvR_zbvGjb_oCNaEMfoItmDMVH-wYgdpnilu4-u2PeQSq5cnIAwQaFgWFZ1_ZAmEs3-sDQWs1mzt4sBKndnOweYzz7MFZ-i5gxHO8sKoI3Y/s200/Rabbit.png" width="200" /></a></div>
<br />
<br />
<br />
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-36980094730077538142018-09-07T06:12:00.000+03:002018-09-07T06:25:10.176+03:00[AutoLISP] - Куда уходит память?<div dir="ltr" style="text-align: left;" trbidi="on">
При разработке приложения на AutoLISP столкнулся с утечкой памяти. На тестах под нагрузкой сжиралась вся оперативная память (всего - 16 Гб).<br />
<div>
Запуск сборщика мусора не помог, все переменные проекта проверил, всё в порядке.</div>
<div>
При отладке выявил, что виновником утечки памяти является функция </div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><b>vlax-ename->vla-object</b></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><b><br /></b></span></div>
<div>
После безуспешных попыток найти решение помог уже не раз выручавший меня способ: последовательное чтение списка всех функций. </div>
<div>
В книге "Autolisp и Visual Lisp в среде AutoCAD" есть очень удобное приложение - в одну таблицу собраны все функции и методы, сначала пробежался по ней, но безуспешно. Пошёл шерстить всю книгу и нашёл метод получения vla-объекта по хэндлу примитива <b><span style="font-family: "courier new" , "courier" , monospace;">HandleToObject</span></b>. </div>
<div>
<br /></div>
<div>
Ну а дальше дело техники - забираем хэндл из DXF-данных примитива и по нему получаем vla-object:</div>
<div>
<br /></div>
<div>
<div>
<b><span style="font-family: "times" , "times new roman" , serif;"><span style="color: red;">(</span><span style="color: blue;">defun</span></span><span style="font-family: "courier new" , "courier" , monospace;"> kha_vlax-ename->vla-object </span><span style="color: red; font-family: "courier new" , "courier" , monospace;">(</span><span style="font-family: "courier new" , "courier" , monospace;">e doc</span><span style="color: red; font-family: "courier new" , "courier" , monospace;">)</span></b></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><b> <span style="color: red;">(</span><span style="color: blue;">vla-HandleToObject</span> doc <span style="color: red;">(</span><span style="color: blue;">cdr</span> <span style="color: red;">(</span><span style="color: blue;">assoc</span> <span style="color: #38761d;">5</span> <span style="color: red;">(</span><span style="color: blue;">entget</span> e<span style="color: red;">))))</span></b></span><b style="font-family: "Courier New", Courier, monospace;"><span style="color: red;">)</span></b></div>
</div>
<div>
<b style="font-family: "Courier New", Courier, monospace;"><span style="color: red;"><br /></span></b></div>
<div>
Удачи!</div>
</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-22990185561581693812018-04-01T07:25:00.000+03:002018-04-12T00:04:51.094+03:00[Revit - Электрика] - Обновление программы R-One Line Diagrams<div dir="ltr" style="text-align: left;" trbidi="on">
Готовится к выпуску обновление программы <b>R-One Line Diagrams</b>.<br />
<br />
Ключевое изменение - добавлена уменьшенная иконка для размещения кнопки запуска программы<br />
на панели быстрого доступа:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEqna_V_CWiIm12-WSGZLR5sdk1aj-DP2ynjHuA2ksld6P1R-pY55oHxLR91w0SMhWlNoH-2l55tN0B4z-NvO4cL0QigmORDeYE_xMzl7CCCuIT30mDua92VjqvYJ3GPe-3G4C230sLPAf/s1600/NewROLD.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="142" data-original-width="684" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEqna_V_CWiIm12-WSGZLR5sdk1aj-DP2ynjHuA2ksld6P1R-pY55oHxLR91w0SMhWlNoH-2l55tN0B4z-NvO4cL0QigmORDeYE_xMzl7CCCuIT30mDua92VjqvYJ3GPe-3G4C230sLPAf/s640/NewROLD.png" width="640" /></a></div>
С праздником! :)<br />
<br />
<b>UPD 08.04.2018: </b><br />
1 апреля прошло, настал черёд описания остальных изменений.<br />
<br />
<b>1. Повышение производительности.</b><br />
По сравнению с предыдущим выпуском скорость генерации схем увеличилась в 5-10 раз.<br />
<br />
<b>2. Поддержка работы с Revit 2018.</b><br />
<br />
<b>3. Автообновление схем.</b><br />
Эту функцию ждали от меня практически с самого возникновения программы:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/KQh4DaN1CbU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/KQh4DaN1CbU?feature=player_embedded" width="320"></iframe></div>
<div style="text-align: center;">
<br /></div>
<b>4. Редактирование однолинейных схем.</b><br />
Вслед за автоматическим обновлением схем появилась потребность обратной связи - от схем к элементам модели Revit.<br />
Наиболее простое решение этого вопроса - по выбранным линиям на схеме найти и выбрать элементы модели Revit. Все изменения автоматически отражаются на схемах.<br />
При такой реализации единым источником данных остаются элементы модели Revit, не требуется отслеживать изменения сгенерированных схем.<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/L1w_BkTFH0E/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/L1w_BkTFH0E?feature=player_embedded" width="320"></iframe></div>
<b><br /></b>
<b>5. Задание ширины столбца однолинейной схемы.</b><br />
В некоторых линиях для имени нагрузки не всегда хватает ширины столбца. Теперь есть возможность задать ширину столбца для отдельных щитов или линий:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/X_GSBBbZE6M/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/X_GSBBbZE6M?feature=player_embedded" width="320"></iframe></div>
<b><br /></b>
<b>6. Нумерация цепей.</b><br />
Про исправление нумерации трёхфазных цепей было описано и решено уже давно, но на всякий случай напоминаю. Кроме того, добавлена возможность задания суффикса или префикса для отдельных цепей:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/HYzjAYEFOAM/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/HYzjAYEFOAM?feature=player_embedded" width="320"></iframe></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Благодарю пользователей программы за обратную связь.</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-2319658412805815462017-11-05T07:58:00.000+03:002017-11-05T01:09:03.540+03:00[AUR 2017] - Моё первое коммерческое приложение для Revit<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2 октября было моё выступление:</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/7H4aSne35SU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/7H4aSne35SU?feature=player_embedded" width="320"></iframe></div>
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-52247733233460904012017-11-05T06:54:00.003+03:002017-11-05T17:15:28.316+03:00[Revit API] - Маркировка взрыв-схемы<div dir="ltr" style="text-align: left;" trbidi="on">
В Revit очень неудобно маркировать элементы, смещённые функцией "Переместить элементы" или "Displace Elements". В этом видео я покажу как решить эту проблему с помощью Revit API<br />
<br />
Этот урок я делал с помощью макросов в Revit и так случилось, что я прибил файл rvt и у меня не осталось исходников. Поэтому смотрим то, что записано:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/MzltQ5MPdwA/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/MzltQ5MPdwA?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
Удачи!</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com2tag:blogger.com,1999:blog-5410990689513282115.post-17143725299515018342016-10-03T07:31:00.000+03:002016-10-03T07:31:07.007+03:00[Revit - Электрика] - Копирование цепей<div dir="ltr" style="text-align: left;" trbidi="on">
Если выбрать электроприборы с щитом и скопировать их, то цепи пропадают.<br />
Чтобы при копировании электроприборов цепи не пропадали, выбирать их нужно через диспетчер инженерных систем, а не на виде.<br />
<br />
Подробнее смотрите в видео:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/bbfK--59z3U/0.jpg" src="https://www.youtube.com/embed/bbfK--59z3U?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-8419653616758108232016-10-02T21:19:00.007+03:002023-11-29T12:31:49.813+03:00[Revit - Электрика] - Connect2ElPanel<div dir="ltr" style="text-align: left;" trbidi="on">
Оформил ещё один свой плагин.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCNJzzpuUgHSQh4fPJxQKd4_V9gsg1NXzs9vy-iOiqRlkQNQnvLe0MMRPa-n26Y9w9oPJeB4ZSxCTYaf-uufL55WbujVoVjASrnWHpEVARmxl_Aka_6T6NT-N-NbKfQMXeDBqK0PIr7ar0/s1600/Icon_64x64.png" style="margin-left: 1em; margin-right: 1em; text-align: right;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCNJzzpuUgHSQh4fPJxQKd4_V9gsg1NXzs9vy-iOiqRlkQNQnvLe0MMRPa-n26Y9w9oPJeB4ZSxCTYaf-uufL55WbujVoVjASrnWHpEVARmxl_Aka_6T6NT-N-NbKfQMXeDBqK0PIr7ar0/s1600/Icon_64x64.png" /></a><br />
Позволяет быстро подключить электрические приборы к электрощиту по одному.<br />
Выбираем элементы, вызываем команду, при необходимости выбираем коннектор и щит, к которому требуется выполнить подсоединение.<br />
Если часть приборов предварительно объединена в цепь, то к электрощиту подсоединяется эта цепь.<br />
<br />
Плагин совместим с Revit 2015-2024.<br />
<br />
Скачать можно <b><span style="color: #0b5394;"><a href="https://yadi.sk/d/ClmnD9x74VanAw">тут</a></span></b><br />
Пароль на архив - 123</div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"><br />
<span style="color: #0b5394;"></span></div><div dir="ltr" style="text-align: left;" trbidi="on">
<span style="color: #0b5394;"></span></div><div dir="ltr" style="text-align: left;" trbidi="on">
<span style="color: #0b5394;"></span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="color: #0b5394;"></span>
Если возникнут вопросы по использованию - пишите в форму обратной связи на блоге или в <b><span style="color: #b45f06;"><a href="https://t.me/joinchat/Cu9YXR0lvv4gRmyL30nkuA" target="_blank">Telegram канал</a></span></b>.</div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2023.07.26 - сборка 0.9.73:</span></b> </div><div dir="ltr" style="text-align: left;" trbidi="on"> </div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">1. Выполнена адаптация для Autodesk Revit 2023, 2024. <br /></div></div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2023.01.16 - сборка 0.9.71:</span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"><br /></span></b><div dir="ltr" style="text-align: left;" trbidi="on">1. Исправлена ошибка при подключении семейств с напряжением, заданным параметром экземпляра с разными значениями напряжения. <br /></div><div dir="ltr" style="text-align: left;" trbidi="on"> </div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2022.12.30 - сборка 0.9.70:</span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"><br /></span></b><div dir="ltr" style="text-align: left;" trbidi="on">1. Исправлена ошибка при подключении семейств с напряжением, заданным параметром экземпляра в случае несоответствия напряжения и типа питающей сети щита. <br /></div></div></div></div></div></div></div></div></div></div></div></div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2022.02.13 - сборка 0.9.68:</span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"><br /></span></b><div dir="ltr" style="text-align: left;" trbidi="on">1. Исправлена ошибка при подключении слаботочных коннекторов<br /><br /></div></div></div></div></div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2021.10.24 - сборка 0.8.67:</span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"><br /></span></b><div dir="ltr" style="text-align: left;" trbidi="on">1. Выполнена адаптация для Autodesk Revit 2022</div><div dir="ltr" style="text-align: left;" trbidi="on">2. Исправлена ошибка при подключении потребителей с напряжением, заданным параметром экземпляра</div></div></div></div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2021.01.18 - сборка 0.8.66:</span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"><br /></span></b><div dir="ltr" style="text-align: left;" trbidi="on">1. Исправлена ошибка, возникавшая в версии плагина для Autodesk Revit 2021 при подключении потребителей к щиту с типом детали "Силовой щит"<br /></div></div></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"> <br /></span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;">UPD 2020.11.09 - сборка 0.8.64:</span></b></div><div dir="ltr" style="text-align: left;" trbidi="on"><b><span style="color: #b45f06;"><br /></span></b></div><div dir="ltr" style="text-align: left;" trbidi="on">1. Исправлена ошибка при подключении потребителей с напряжением, заданным параметром экземпляра</div><div>2. Убрано ограничение на число типоразмеров подключаемых семейств с двумя и более коннекторами. Задание подключаемых коннекторов для таких семейств производится один за другим.</div><div>3. Выполнена адаптация для Revit 2021.</div><div>4. Во всплывающую подсказку на панели инструментов добавлен вывод номера сборки.</div><div>5. При нажатии на F1 при отображённой всплывающей подсказке переход производится на это сообщение, а не на главную страницу блога.</div><div><br />
<b><span style="color: #b45f06;">UPD 2020.05.24 - </span></b><span style="color: #b45f06;"><b>сборка 0.8.63:</b></span><br />
<br />
1. Исправлена ошибка при соединении и пересоединении потребителей с двумя и более коннекторами.<br />
<br />
<b><span style="color: #b45f06;">UPD 2020.02.24 - </span></b><span style="color: #b45f06;"><b>сборка 0.8.62:</b></span><br />
<span style="color: #b45f06;"><b><br /></b></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/QWtYtE4fFkk/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/QWtYtE4fFkk?feature=player_embedded" width="320"></iframe></div>
1. Добавлена уменьшенная иконка для размещения кнопки плагина на панели быстрого доступа.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRwOn8Gsyd4xIdPz8E8ElEE1hyphenhyphenCEpue5z6D2lkbNvVijbe0ywAt01O9d1vzxd9cWuOq1dmspGS3umTyBZ38aLhj29YKu2RBuUxk-U5RWczzeZo1H-reIIMgoDqEdEbCH9vyT7XT4lvpQid/s1600/%25D0%25A3%25D0%25BC%25D0%25B5%25D0%25BD%25D1%258C%25D1%2588%25D0%25B5%25D0%25BD%25D0%25BD%25D0%25B0%25D1%258F+%25D0%25B8%25D0%25BA%25D0%25BE%25D0%25BD%25D0%25BA%25D0%25B0.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="35" data-original-width="504" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRwOn8Gsyd4xIdPz8E8ElEE1hyphenhyphenCEpue5z6D2lkbNvVijbe0ywAt01O9d1vzxd9cWuOq1dmspGS3umTyBZ38aLhj29YKu2RBuUxk-U5RWczzeZo1H-reIIMgoDqEdEbCH9vyT7XT4lvpQid/s1600/%25D0%25A3%25D0%25BC%25D0%25B5%25D0%25BD%25D1%258C%25D1%2588%25D0%25B5%25D0%25BD%25D0%25BD%25D0%25B0%25D1%258F+%25D0%25B8%25D0%25BA%25D0%25BE%25D0%25BD%25D0%25BA%25D0%25B0.PNG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
2. Исправлена ошибка при попытке пересоединения щита. Такая функция не была запланирована в предыдущей версии программы, но бывали случаи когда специалисты пытались выполнить пересоединение щита, что приводило к неожиданным результатам.<br />
<br />
3. Добавлена возможность сохранения выбранных коннекторов для присоединения в пределах сеанса Revit.<br />
Достаточно один раз указать коннектор и поставить галку "Запомнить выбор коннекторов в текущем сеансе Revit".<br />
Информация о выборе коннекторов хранится в формате:<br />
[Текущий документ]-[Типоразмер семейства потребителя]-[Список описаний коннекторов],<br />
т.е. хранится отдельно по каждому открытому документу и типоразмеру семейства.<br />
При перезагрузке документа информация о выбранных коннекторах сбросится.<br />
<br />
Если появится необходимость переопределить выбор коннектора в текущем сеансе Revit, то выберите один неподсоединённый потребитель (без созданной цепи) и нажмите на кнопку приложения. Откроется окно для выбора коннектора.<br />
<br />
4. Если у потребителя два коннектора и более, то возможно выбрать несколько коннекторов для подключения.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1YqAsdDp9yyw1LR-w9zwOrp8ygRGBhxgXbNN8vksCzqrOcxMBCwpk6BbNkfcpwxHsLhv4ZHZ7safzB56hyace4aIW014ZCbdB-3Lqw_YOArpJyGIO9myfPWCLLXxJXfUVZVgPda65j9i0/s1600/Select+multiply.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="312" data-original-width="496" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1YqAsdDp9yyw1LR-w9zwOrp8ygRGBhxgXbNN8vksCzqrOcxMBCwpk6BbNkfcpwxHsLhv4ZHZ7safzB56hyace4aIW014ZCbdB-3Lqw_YOArpJyGIO9myfPWCLLXxJXfUVZVgPda65j9i0/s1600/Select+multiply.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
5. Добавлена возможность пересоединения потребителей. Достаточно выбрать ранее подключённые потребители, а затем щит, к которому необходимо их пересоединить.<br />
<br />
6. Добавлена возможность выбора щитов в соответствии с напряжением, заданным на коннекторе. В строке состояния указывается напряжение подключаемых цепей. Если необходимо подсоединить цепи с различным напряжением к одному щиту, то выберите один щит дважды.<br />
<br />
<b><span style="color: #b45f06;">UPD 2020.02.24 - создан </span></b><b><span style="color: #b45f06;"><a href="https://t.me/joinchat/Cu9YXR0lvv4gRmyL30nkuA" target="_blank">Telegram канал</a></span></b><b><span style="color: #b45f06;"> </span></b><span style="color: #b45f06;"><b>для обсуждения программы и оповещении об обновлениях</b></span><br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
<b><span style="color: #b45f06;">UPD 2019.06.17 - выполнено обновление:</span></b></div>
<div class="separator" style="clear: both;">
- присоединение щитов</div>
<div class="separator" style="clear: both;">
<span>- пакетное присоединение/пересоединение цепей</span></div>
<div class="separator" style="clear: both;">
- исправлена ошибка при подключении потребителей с напряжением, заданным параметром экземпляра</div>
<div class="separator" style="clear: both;">
- адаптация для Revit 2019, 2020</div>
<div class="separator" style="clear: both;">
<b><span style="color: #b45f06;"><br /></span></b></div>
<div style="text-align: center;">
<b><span style="color: #b45f06;"><iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/TSK8ionvP74/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/TSK8ionvP74?feature=player_embedded" width="320"></iframe></span></b></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="color: #b45f06;"><b><br /></b></span></div>
<br />
<div class="separator" style="clear: both;">
<span style="color: #b45f06;"></span></div>
<br />
<div class="separator" style="clear: both;">
скачать можно <b><span style="color: #0b5394;"><a href="https://yadi.sk/d/ClmnD9x74VanAw">тут</a></span></b></div>
<div class="separator" style="clear: both;">
пароль на архив: 123</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
при скачивании файла он блокируется системой. Перед распаковкой разблокируйте его.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYyBc0EgwexKj4LaG5DzynDSi4RLR3nPPGw6Wb5MGhvOoNQevBXGrO5ii2lsE7G_9d8td3cfY_digZWv_oyFGeUs2fm4ku53AoK-5CU_lA6U0rrw2h-Sfgb-k_hcVN6KDBQQkd8j52WDtW/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="502" data-original-width="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYyBc0EgwexKj4LaG5DzynDSi4RLR3nPPGw6Wb5MGhvOoNQevBXGrO5ii2lsE7G_9d8td3cfY_digZWv_oyFGeUs2fm4ku53AoK-5CU_lA6U0rrw2h-Sfgb-k_hcVN6KDBQQkd8j52WDtW/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" /></a></div>
<br />
<br />
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com6tag:blogger.com,1999:blog-5410990689513282115.post-82617523639755384952016-09-27T18:40:00.000+03:002016-10-04T01:06:14.655+03:00[Revit] - CheckLinks - проверка положения связанных моделей<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
Этот небольшой плагин позволяет проверить:</div>
<div>
- точку вставки связанной модели (если точка вставки соответствует началу координат, то не выводится)</div>
<div>
- прикреплена ли связанная модель (если точка вставки соответствует началу координат, и модель не прикреплена, то прикрепление выполняется автоматически, информация не выводится)</div>
<div>
- рабочие наборы типоразмера и экземпляра связанной модели.</div>
<div>
<br />
Совместимо с Revit 2015-2017.<br />
<br /></div>
<div>
Скачать можно <a href="https://yadi.sk/d/4sPbyc4YwAQ9G"><span style="color: #0b5394;"><b>тут</b></span></a></div>
<div>
<br />
Вызов:<br />
<div>
панель "Надстройки" -> "Внешние инструменты" -> Check Links</div>
<br />
Если будут вопросы по использованию - пишите в форму обратной связи на блоге.<br />
<br />
Небольшое видео, демонстрирующее работу плагина:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/4xAOqKqUyTE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/4xAOqKqUyTE?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>UPD:</b> Обновил ссылку, сделал небольшие правки.</div>
<div class="separator" style="clear: both; text-align: left;">
Спасибо за обратную связь!</div>
<br /></div>
</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-9769138106009331602016-08-19T01:23:00.003+03:002016-08-21T13:25:07.136+03:00[Revit] - Горизонтальные связи на наклонной плоскости<div dir="ltr" style="text-align: left;" trbidi="on">
Здесь я описываю принцип построения элементов на наклонной плоскости:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/PKOAqfQBhkI/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/PKOAqfQBhkI?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Основные этапы построения вида для работы на наклонной плоскости:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinlf0iARS6s3z424E8k0mAF1FGXUQoheE-WngFU7RfBNM3Oco0rSrX4tlqpko6VN1keqAlvKPjgphe_FlKmtdz5Q79Z9hI7fp3ex5zlclS_TYds9kGp2FhWlzTvXy6DyIWRprVEkl9yF8z/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinlf0iARS6s3z424E8k0mAF1FGXUQoheE-WngFU7RfBNM3Oco0rSrX4tlqpko6VN1keqAlvKPjgphe_FlKmtdz5Q79Z9hI7fp3ex5zlclS_TYds9kGp2FhWlzTvXy6DyIWRprVEkl9yF8z/s640/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA1.PNG" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSAaEzCdp9g07ySz4unmVahkEM_0Stt3ZykpMJzQn_5js65eJLuVLX5RQEX2GLxUvYFdxiLXOtCpBpiHttolrhOkCbi23GC7d6pZPU2S8JnkOE0gaRJt9rQ8Erxczm7oTc5RdiX9xBI7Fk/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSAaEzCdp9g07ySz4unmVahkEM_0Stt3ZykpMJzQn_5js65eJLuVLX5RQEX2GLxUvYFdxiLXOtCpBpiHttolrhOkCbi23GC7d6pZPU2S8JnkOE0gaRJt9rQ8Erxczm7oTc5RdiX9xBI7Fk/s640/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA2.PNG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Ug56psGKHiTEz2upkjJVjTO-prIFEkblngL4bJc3Gxe61bsw0qMbcLsNoZ2WlI1iT82-sVz_mRS1TsSYDWuEYvkJWe9kzoMYRyP7c_XNW4i5Zg-Y6Lz8cfLQJMN2UBkWfEeyvYMHUxHr/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Ug56psGKHiTEz2upkjJVjTO-prIFEkblngL4bJc3Gxe61bsw0qMbcLsNoZ2WlI1iT82-sVz_mRS1TsSYDWuEYvkJWe9kzoMYRyP7c_XNW4i5Zg-Y6Lz8cfLQJMN2UBkWfEeyvYMHUxHr/s640/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA3.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisDalI9jvOAaQHy-jc6yclspRFTAHRlklOb3S7yTah5KquqPnPwix66WsRTtzWw_7Bf-S5KgbV1djJYFUJAMOBFxcNszDMIBh57UVsFBHBwEWMeH5CVqaj5a3FqRBvTf4P0lzPF_4-3Snt/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisDalI9jvOAaQHy-jc6yclspRFTAHRlklOb3S7yTah5KquqPnPwix66WsRTtzWw_7Bf-S5KgbV1djJYFUJAMOBFxcNszDMIBh57UVsFBHBwEWMeH5CVqaj5a3FqRBvTf4P0lzPF_4-3Snt/s640/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA4.PNG" width="640" /></a><span style="text-align: left;">Удачи!</span></div>
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-58848999887335913382016-07-24T13:04:00.001+03:002016-07-28T22:59:18.771+03:00[Revit] - Стены, плиты и секущий диапазон.<div dir="ltr" style="text-align: left;" trbidi="on">
Когда я впервые встретился с этими исключениями, то это ввело меня в ступор.<br />
Как так? Что происходит? Опытным путём удалось выявить в чём дело. Ну и да, чтение справки бывает очень полезным для понимания работы программы.<br />
<br />
Об исключении при отображении стен:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/6DCsTkap0nA/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/6DCsTkap0nA?feature=player_embedded" width="320"></iframe></div>
<br />
<b><a href="http://forums.autodesk.com/t5/revit-bim-russkiy/otobrazhenie-secheniya-sten-v-plane/td-p/5949941"><span style="color: #3d85c6;">здесь</span></a></b> данный вопрос освещён в тексте.<br />
<br />
Об исключении при отображении перекрытий:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Jz_7tgwZlQc/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/Jz_7tgwZlQc?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Удачи!</div>
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-31300472520787370112016-04-01T06:24:00.000+03:002017-06-27T23:13:12.925+03:00[Revit API] - Задание произвольной подрезки границы вида<div dir="ltr" style="text-align: left;" trbidi="on">
Скачайте файл <a href="https://yadi.sk/d/RFl1OmRc3KXnMs"><b><span style="color: #3d85c6;">ChangeViewCropRegion.rvt</span></b></a>,<br />
откройте его, при загрузке нажмите на кнопку "Включить макросы для данного документа" зайдите в управление -> Диспетчер макросов -> Выбрать макрос -> Редактировать<br />
Откроется SharpDevelop, нажмите наверху на кнопку "Собрать текущий проект"<br />
<br />
Затем вернитесь в Revit и запустите макрос "RRabbit"<br />
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0tag:blogger.com,1999:blog-5410990689513282115.post-49674223408537668632016-02-02T16:47:00.000+03:002018-06-19T15:15:55.464+03:00[Revit - Электрика] - Построение однолинейных схем<div dir="ltr" style="text-align: left;" trbidi="on">
Сергей Пучков опубликовал небольшое видео про один из моих плагинов:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/QVQuHGe3TrA/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/QVQuHGe3TrA?feature=player_embedded" width="320"></iframe></div>
об условиях приобретения можно узнать, написав в форму обратной связи на этом блоге<br />
<br />
<b>UPD:</b><br />
с новинками можно ознакомиться здесь: <a href="https://fazleev.blogspot.com/2018/04/rold-01-april.html">https://fazleev.blogspot.com/2018/04/rold-01-april.html</a><br />
<br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com2tag:blogger.com,1999:blog-5410990689513282115.post-81162356471261705342015-12-20T05:34:00.001+03:002022-02-05T00:30:52.278+03:00[Revit API] - Особенности работы с макросами.<div dir="ltr" style="text-align: left;" trbidi="on">
Виктор Чекалин разместил ряд статей на <a href="http://adn-cis.org/"><b><span style="color: #0b5394;">adn-cis.org</span></b></a> на тему работы с макросами:<br />
<br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-v-revit-vvedenie.html">Работа с макросами в Revit - Введение</a></span></b><br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-v-revit-pervyij-makros.html">Работа с макросами в Revit - Первый макрос</a></span></b><br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-v-revit-vyibor-yazyika-programmirovaniya.html">Работа с макросами в Revit - Выбор языка программирования</a></span></b><br />
<b><a href="http://adn-cis.org/rabota-s-makrosami-izuchenie-revit-api.html"><span style="color: #0b5394;">Работа с макросами - Изучение Revit API</span></a></b><br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-otladka.html">Работа с макросами. Отладка</a></span></b><br />
<b><a href="http://adn-cis.org/rabota-s-makrosami-poshagovaya-otladka-koda.html"><span style="color: #0b5394;">Работа с макросами Пошаговая отладка кода</span></a></b><br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami.-ispolzovanie-kontrolnyix-tochek.html">Работа с макросами. Использование контрольных точек</a></span></b><br />
<a href="http://adn-cis.org/rabota-s-makrosami-kommentirovanie-koda.html"><b><span style="color: #0b5394;">Работа с макросами Комментирование кода</span></b></a><br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-isklyucheniya.html">Работа с макросами. Исключения</a></span></b><br />
<b><span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-primer-makrosa.html">Работа с макросами. Пример макроса</a></span></b><br />
<span style="color: #0b5394;"><a href="http://adn-cis.org/rabota-s-makrosami-dalnejshie-dejstviya-i-zaklyuchenie.html"><b>Работа с макросами. Дальнейшие действия и заключение</b></a></span><br />
<br />
Чуть больше года назад я начинал свои первые программы с создания макросов, за время работы накопился некоторый опыт работы с ними.<br />
<br />
Для начала опишу плюсы работы с макросами:<br />
<br />
1. Прекрасно подходят для новичков. Не нужно заморачиваться с созданием проекта, писать файл манифеста, можно быстро написать короткий код.<br />
<br />
2. Для проверки работы макроса не требуется каждый раз перезагружать Revit. Если единожды запустил плагин, созданный в Visual Studio, то Revit занимает файл сборки dll и её не удаётся перезаписать, пока не перезагрузишь Revit.<br />
С макросами такой проблемы не существует. Собрал решение, запустил из диспетчера макросов.<br />
<br />
3. Очень хорошо подходят для тестовых проработок. Если нужно быстро что-то проверить, посмотреть как работает пример кода.<br />
<br />
4. Возможно сделать отладку макроса, не перезагружая каждый раз Revit. Как выполнить отладку макроса я уже писал ранее, повторюсь:<br />
<blockquote class="tr_bq">
<span face=""trebuchet ms" , "trebuchet" , "verdana" , sans-serif" style="background-color: white; color: #666666; font-size: 13.2px; line-height: 18.48px;">Для отладки в макросах служит кнопка "Войти в блок" в диспетчере макросов.</span><span face=""trebuchet ms" , "trebuchet" , "verdana" , sans-serif" style="background-color: white; color: #666666; font-size: 13.2px; line-height: 18.48px;">Подробнее см. </span><span face=""trebuchet ms" , "trebuchet" , "verdana" , sans-serif" style="background-color: white; color: blue; font-size: 13.2px; font-weight: bold; line-height: 18.48px;"><a href="http://help.autodesk.com/view/RVT/2014/RUS/?guid=GUID-77FBFB93-29FF-4FA1-B9CE-408064C602B3" style="color: #888888; text-decoration: none;">справку</a> </span><span face=""trebuchet ms" , "trebuchet" , "verdana" , sans-serif" style="background-color: white; color: #666666; font-size: 13.2px; line-height: 18.48px;">Команда "Войти в блок" в справке неверно переведена как "ШагВ", что сбило меня с толку.</span></blockquote>
5. Мне очень нравится, что SharpDevelop не подсвечивает ошибки в коде сразу же после набора. Ошибки подчёркиваются после компиляции решения. В Visual Studio меня очень раздражает, когда происходит подчёркивание незавершённого кода.<br />
<br />
Теперь о том, почему я отказался от регулярной работы с макросами и перешёл на Visual Studio:<br />
<br />
1. Макрос хранится в файле Revit со всеми вытекающими последствиями. Если будет сбой с вылетом из Revit, то не закрывайте SharpDevelop.<br />
<br />
Варианты действий после аварийного завершения Revit:<br />
- скопируйте куда-нибудь код из окна редактора<br />
- сохраните файл с кодом<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYWTtE8kRITSaJNd2GUzobHtCeV72i7HevOV-40Xp9innK1vowFihM8D9maGEld0f8EPmL3ncj88xUTh8448Ffrt791TpJ_TYB18gpVttX6hnSe3KyXmrcB6GIDS1B1eTSukNGCHn0Lq_9/s1600/SaveAS.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYWTtE8kRITSaJNd2GUzobHtCeV72i7HevOV-40Xp9innK1vowFihM8D9maGEld0f8EPmL3ncj88xUTh8448Ffrt791TpJ_TYB18gpVttX6hnSe3KyXmrcB6GIDS1B1eTSukNGCHn0Lq_9/s1600/SaveAS.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
- найдите решение с макросом во временной папке пользователя. </div>
<div class="separator" style="clear: both; text-align: left;">
Вот как выглядит путь к папке с решением на моём компьютере:</div>
<div class="separator" style="clear: both; text-align: left;">
%username%\AppData\Local\Temp\{6586EA70-C4F5-4461-8CEB-FD58406E0247}\Revit\DocHookups9148\890337088\test\Source</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
После открытия проекта Revit вставьте сохранённый код в редакторе макроса. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2. Возможны проблемы при совместной работе. Могут занять рабочий набор с макросом (да, да, макрос тоже имеет свой рабочий набор!), не удастся выполнить синхронизацию. Был противоположный случай - я редактировал макрос, занял его рабочий набор, синхронизировался, закрыл файл и другие участники проекта не смогли синхронизироваться.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
3. Распространение и запуск макроса для пользователей. Макрос живёт в проекте, а следовательно чтобы подгрузить его в другой проект, то нужно открыть файл с макросом, скопировать его текст в свой файл. Конечно можно сделать отдельный проект Revit с макросами, держать его открытым, макросы из него будут запускаться в другом проекте, но это о-о-о-чень напряжно для пользователей. Гораздо проще запускать плагины кнопкой с панели.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Обновление
макроса. Допустим, я получил сообщение об ошибке в моём макросе. Мои действия: отладил, поправил. Теперь нужно обновить макрос в файле пользователя. Я не вижу другого пути, кроме как через копирование кода из окна редактора в моём файле и вставку кода в файле пользователя. А если проект не один? Может есть какой-то другой подход, не знаю, но мне проще обновить dll-ки на сервере, чем морочить голову пользователям макросами.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
5. Разрастание кода. При тестовых проработках нужно внимательно следить за тем, чтобы маленький тест не разросся в полноценный проект. Появление нового класса или появление более пяти методов является для меня сигналом к переходу на Visual Studio.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
6. InteliSense не подхватывает некоторые методы. Например, для объекта Element не отображается метод get_Parameter.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Не стоит совсем отказываться от работы с макросами. </div>
<div class="separator" style="clear: both; text-align: left;">
Это идеальный инструмент для начала работы с Revit API. Когда макрос перерастает в полноценный плагин, то я рекомендую переносить проект в Visual Studio.</div>
Сейчас я применяю макросы в тестовых проработках и при изысканиях. Быстренько набрал небольшой код, проверил, отладил, скопировал методы в проект Visual Studio.</div><div dir="ltr" style="text-align: left;" trbidi="on"> </div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on">Удачи!</div><div dir="ltr" style="text-align: left;" trbidi="on"> </div><div dir="ltr" style="text-align: left;" trbidi="on"><b>UPD:</b> <br /></div><div dir="ltr" style="text-align: left;" trbidi="on">Статья Вадима Муратова: <a href="https://zen.yandex.ru/media/muratovbim/revit-makrosy-i-kak-ih-kopirovat-6020d15586f4e22208fd0c37">Revit: макросы и как их копировать</a><span style="-moz-box-align: unset; -moz-box-direction: unset; -moz-box-flex: unset; -moz-box-ordinal-group: unset; -moz-box-orient: unset; -moz-box-pack: unset; -moz-float-edge: unset; -moz-force-broken-image-icon: unset; -moz-image-region: unset; -moz-orient: unset; -moz-text-size-adjust: unset; -moz-user-focus: unset; -moz-user-input: unset; -moz-user-modify: unset; -moz-window-dragging: unset; -webkit-line-clamp: unset; -webkit-text-fill-color: unset; -webkit-text-stroke: unset; accent-color: unset; animation: unset; appearance: unset; aspect-ratio: unset; backface-visibility: unset; background-blend-mode: unset; background: unset; block-size: unset; border-block: unset; border-collapse: unset; border-end-end-radius: unset; border-end-start-radius: unset; border-inline: unset; border-radius: unset; border-spacing: unset; border-start-end-radius: unset; border-start-start-radius: unset; border: unset; bottom: unset; box-decoration-break: unset; box-shadow: unset; box-sizing: unset; break-after: unset; break-before: unset; break-inside: unset; caption-side: unset; caret-color: unset; clear: unset; clip-path: unset; clip-rule: unset; clip: rect(0px, 0px, 0px, 0px); color-adjust: unset; color-interpolation-filters: unset; color-interpolation: unset; color-scheme: unset; color: unset; column-fill: unset; column-rule: unset; column-span: unset; columns: unset; contain: unset; content: unset; counter-increment: unset; counter-reset: unset; counter-set: unset; cursor: unset; cx: unset; cy: unset; display: unset; dominant-baseline: unset; empty-cells: unset; fill-opacity: unset; fill-rule: unset; fill: unset; filter: unset; flex-flow: unset; flex: unset; float: unset; flood-color: unset; flood-opacity: unset; font-synthesis: unset; font: unset; gap: unset; grid-area: unset; grid: unset; height: unset; hyphens: unset; image-orientation: unset; image-rendering: unset; ime-mode: unset; inline-size: unset; inset-block: unset; inset-inline: unset; isolation: unset; left: unset; letter-spacing: unset; lighting-color: unset; line-break: unset; list-style: unset; margin-block: unset; margin-inline: unset; margin: unset; marker: unset; mask-type: unset; mask: unset; max-block-size: unset; max-height: unset; max-inline-size: unset; max-width: unset; min-block-size: unset; min-height: unset; min-inline-size: unset; min-width: unset; mix-blend-mode: unset; object-fit: unset; object-position: unset; offset: unset; opacity: unset; order: unset; outline-offset: unset; outline: unset; overflow-anchor: unset; overflow-block: unset; overflow-inline: unset; overflow-wrap: unset; overflow: unset; overscroll-behavior-block: unset; overscroll-behavior-inline: unset; overscroll-behavior: unset; padding-block: unset; padding-inline: unset; padding: unset; paint-order: unset; perspective-origin: unset; perspective: unset; place-content: unset; place-items: unset; place-self: unset; pointer-events: unset; position: fixed; quotes: unset; r: unset; resize: unset; right: unset; rotate: unset; ruby-align: unset; ruby-position: unset; rx: unset; ry: unset; scale: unset; scroll-behavior: unset; scroll-margin-block: unset; scroll-margin-inline: unset; scroll-margin: unset; scroll-padding-block: unset; scroll-padding-inline: unset; scroll-padding: unset; scroll-snap-align: unset; scroll-snap-type: unset; scrollbar-color: unset; scrollbar-width: unset; shape-image-threshold: unset; shape-margin: unset; shape-outside: unset; shape-rendering: unset; size: unset; stop-color: unset; stop-opacity: unset; stroke-dasharray: unset; stroke-dashoffset: unset; stroke-linecap: unset; stroke-linejoin: unset; stroke-miterlimit: unset; stroke-opacity: unset; stroke-width: unset; stroke: unset; tab-size: unset; table-layout: unset; text-align-last: unset; text-align: unset; text-anchor: unset; text-combine-upright: unset; text-decoration-skip-ink: unset; text-decoration: unset; text-emphasis-position: unset; text-emphasis: unset; text-indent: unset; text-justify: unset; text-orientation: unset; text-overflow: unset; text-rendering: unset; text-shadow: unset; text-transform: unset; text-underline-offset: unset; text-underline-position: unset; top: 0px; touch-action: unset; transform-box: unset; transform-origin: unset; transform-style: unset; transform: unset; transition: unset; translate: unset; user-select: text; vector-effect: unset; vertical-align: unset; visibility: unset; white-space: pre; width: unset; will-change: unset; word-break: unset; word-spacing: unset; writing-mode: unset; x: unset; y: unset; z-index: unset;">://zen.yandex.ru/media/muratovbim/revit-makrosy-i-kak-ih-kopirovat-6020d15586f4e22208fd0c37<a href="https://zen.yandex.ru/media/muratovbim/revit-makrosy-i-kak-ih-kopirovat-6020d15586f4e22208fd0c37">Revit: макросы и как их копировать</a></span><span style="-moz-box-align: unset; -moz-box-direction: unset; -moz-box-flex: unset; -moz-box-ordinal-group: unset; -moz-box-orient: unset; -moz-box-pack: unset; -moz-float-edge: unset; -moz-force-broken-image-icon: unset; -moz-image-region: unset; -moz-orient: unset; -moz-text-size-adjust: unset; -moz-user-focus: unset; -moz-user-input: unset; -moz-user-modify: unset; -moz-window-dragging: unset; -webkit-line-clamp: unset; -webkit-text-fill-color: unset; -webkit-text-stroke: unset; accent-color: unset; animation: unset; appearance: unset; aspect-ratio: unset; backface-visibility: unset; background-blend-mode: unset; background: unset; block-size: unset; border-block: unset; border-collapse: unset; border-end-end-radius: unset; border-end-start-radius: unset; border-inline: unset; border-radius: unset; border-spacing: unset; border-start-end-radius: unset; border-start-start-radius: unset; border: unset; bottom: unset; box-decoration-break: unset; box-shadow: unset; box-sizing: unset; break-after: unset; break-before: unset; break-inside: unset; caption-side: unset; caret-color: unset; clear: unset; clip-path: unset; clip-rule: unset; clip: rect(0px, 0px, 0px, 0px); color-adjust: unset; color-interpolation-filters: unset; color-interpolation: unset; color-scheme: unset; color: unset; column-fill: unset; column-rule: unset; column-span: unset; columns: unset; contain: unset; content: unset; counter-increment: unset; counter-reset: unset; counter-set: unset; cursor: unset; cx: unset; cy: unset; display: unset; dominant-baseline: unset; empty-cells: unset; fill-opacity: unset; fill-rule: unset; fill: unset; filter: unset; flex-flow: unset; flex: unset; float: unset; flood-color: unset; flood-opacity: unset; font-synthesis: unset; font: unset; gap: unset; grid-area: unset; grid: unset; height: unset; hyphens: unset; image-orientation: unset; image-rendering: unset; ime-mode: unset; inline-size: unset; inset-block: unset; inset-inline: unset; isolation: unset; left: unset; letter-spacing: unset; lighting-color: unset; line-break: unset; list-style: unset; margin-block: unset; margin-inline: unset; margin: unset; marker: unset; mask-type: unset; mask: unset; max-block-size: unset; max-height: unset; max-inline-size: unset; max-width: unset; min-block-size: unset; min-height: unset; min-inline-size: unset; min-width: unset; mix-blend-mode: unset; object-fit: unset; object-position: unset; offset: unset; opacity: unset; order: unset; outline-offset: unset; outline: unset; overflow-anchor: unset; overflow-block: unset; overflow-inline: unset; overflow-wrap: unset; overflow: unset; overscroll-behavior-block: unset; overscroll-behavior-inline: unset; overscroll-behavior: unset; padding-block: unset; padding-inline: unset; padding: unset; paint-order: unset; perspective-origin: unset; perspective: unset; place-content: unset; place-items: unset; place-self: unset; pointer-events: unset; position: fixed; quotes: unset; r: unset; resize: unset; right: unset; rotate: unset; ruby-align: unset; ruby-position: unset; rx: unset; ry: unset; scale: unset; scroll-behavior: unset; scroll-margin-block: unset; scroll-margin-inline: unset; scroll-margin: unset; scroll-padding-block: unset; scroll-padding-inline: unset; scroll-padding: unset; scroll-snap-align: unset; scroll-snap-type: unset; scrollbar-color: unset; scrollbar-width: unset; shape-image-threshold: unset; shape-margin: unset; shape-outside: unset; shape-rendering: unset; size: unset; stop-color: unset; stop-opacity: unset; stroke-dasharray: unset; stroke-dashoffset: unset; stroke-linecap: unset; stroke-linejoin: unset; stroke-miterlimit: unset; stroke-opacity: unset; stroke-width: unset; stroke: unset; tab-size: unset; table-layout: unset; text-align-last: unset; text-align: unset; text-anchor: unset; text-combine-upright: unset; text-decoration-skip-ink: unset; text-decoration: unset; text-emphasis-position: unset; text-emphasis: unset; text-indent: unset; text-justify: unset; text-orientation: unset; text-overflow: unset; text-rendering: unset; text-shadow: unset; text-transform: unset; text-underline-offset: unset; text-underline-position: unset; top: 0px; touch-action: unset; transform-box: unset; transform-origin: unset; transform-style: unset; transform: unset; transition: unset; translate: unset; user-select: text; vector-effect: unset; vertical-align: unset; visibility: unset; white-space: pre; width: unset; will-change: unset; word-break: unset; word-spacing: unset; writing-mode: unset; x: unset; y: unset; z-index: unset;">https://zen.yandex.ru/media/muratovbim/revit-makrosy-i-kak-ih-kopirovat-6020d15586f4e22208fd0c37</span></div><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com1tag:blogger.com,1999:blog-5410990689513282115.post-52045469854805349142015-12-11T02:25:00.000+03:002015-12-20T22:59:36.643+03:00[Revit API] - Как получить линии из условного обозначения отверстия (продолжение)<div dir="ltr" style="text-align: left;" trbidi="on">
Всё-таки нашёл решение с получением линий из семейства категории "Типовые аннотации". Как и обещал, пишу продолжение.<br />
<div>
<br /></div>
<div>
Google не помог, в руководстве пользователя тоже ничего не смог обнаружить.</div>
<div>
На этот раз выручил сайт <b><span style="color: #3d85c6;"><a href="http://revitapisearch.com/">revitapisearch.com</a></span></b>. Этот сайт - последний рубеж в моих изысканиях.</div>
<div>
Если что-то совсем не выходит или нужно окончательно убедиться в том, что невозможно сделать через Revit API - захожу туда, нажимаю на кнопку "Members" и забиваю в поиске на страничке слова по смыслу.</div>
<div>
Довольно-таки муторное занятие:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX1VJsDPtNwffcFF9gDewwelmIILplqqMh1ED1MOYuGyOagsFXdBVJBFU-oxRtHGIHU945zcIFabGMRxB5QBLHBmCncK3U2F7nSPjcSjCOXdncsR4gSdUhRVpMOPMNucRW3_KwtKypy0JN/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX1VJsDPtNwffcFF9gDewwelmIILplqqMh1ED1MOYuGyOagsFXdBVJBFU-oxRtHGIHU945zcIFabGMRxB5QBLHBmCncK3U2F7nSPjcSjCOXdncsR4gSdUhRVpMOPMNucRW3_KwtKypy0JN/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" /></a></div>
<div>
<br /></div>
<div>
И далее F3, F3, F3 по всей простыне.</div>
<div>
На 118-м найденном слове наткнулся на метод:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtpSRXK5QetshbgAKSqNdkjpUmZrYoeHMpxlL9bgPiKmnS7y7fCO0-VGbu2OsCBevZGE-9OQKKicYmW1SNPbmSN304HZ3RwarVsUkP0SUavPExG-qCV38ig_Wt5PRtmH5wJaOUZfCgibp3/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtpSRXK5QetshbgAKSqNdkjpUmZrYoeHMpxlL9bgPiKmnS7y7fCO0-VGbu2OsCBevZGE-9OQKKicYmW1SNPbmSN304HZ3RwarVsUkP0SUavPExG-qCV38ig_Wt5PRtmH5wJaOUZfCgibp3/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" /></a></div>
<div>
<br /></div>
<div>
Ага, на этот раз охота оказалась удачной.</div>
<div>
<br /></div>
<div>
Строку из предыдущего сообщения</div>
<div>
<br /></div>
<div>
<div class="MsoNormal">
<b><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; line-height: 107%; mso-ansi-language: EN-US; mso-highlight: white;">GeometryElement</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"> geometryElement
= element.get_Geometry(geomOption);</span></b><span lang="EN-US"><o:p></o:p></span></div>
</div>
<div>
<br /></div>
<div>
заменяю на</div>
<div>
<br /></div>
<div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">FamilyInstance</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> fi = (</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">FamilyInstance</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">)element;<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; line-height: 107%; mso-ansi-language: EN-US; mso-highlight: white;">GeometryElement</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"> geometryElement
= fi.GetOriginalGeometry(geomOption);</span></b><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><br /></span></div>
<div class="MsoNormal">
Код скомпилировался и даже сработал, но в итоге я получил какую-то козявку в базовой точке проекта:</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibWN8rLFteoFHCxL2r4UdoIEnSUJiDEpm9M08RUCOqjOsqJT5jNjshJqkAPM6By2mBICfgrcCvJova-0o_Hr548BNB8GxJ94t74766Dpk-0VPYc3VSxWEHaoWtlcnJ3OHDsgHWwMTGJqyK/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="304" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibWN8rLFteoFHCxL2r4UdoIEnSUJiDEpm9M08RUCOqjOsqJT5jNjshJqkAPM6By2mBICfgrcCvJova-0o_Hr548BNB8GxJ94t74766Dpk-0VPYc3VSxWEHaoWtlcnJ3OHDsgHWwMTGJqyK/s320/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Видимо OriginalGeometry - это описание геометрии внутри семейства.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
В объекте типа <span style="background-color: white; color: #2b91af; font-family: "consolas"; font-size: 12.6667px;"><b>FamilyInstance</b></span> есть метод <span style="background-color: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><b>GetTransform()</b></span>. </div>
<div class="separator" style="clear: both; text-align: left;">
Смотрю что есть интересного в линии:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi83_LLXndM2k9tGO8SnFZr2aVa1B0mQyftQWzllsNRPyG69TWQ6xohC0I0toQ1pS_d8NEEAdxvXVPE3jCBE6A3jcJYEHRNfPQMU3_iwLBkzs_nXuynS8mx4FNvNPSDr0HZLl0r-yaybh7I/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi83_LLXndM2k9tGO8SnFZr2aVa1B0mQyftQWzllsNRPyG69TWQ6xohC0I0toQ1pS_d8NEEAdxvXVPE3jCBE6A3jcJYEHRNfPQMU3_iwLBkzs_nXuynS8mx4FNvNPSDr0HZLl0r-yaybh7I/s640/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Добавляю строчку с трансформацией линии:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> (l != </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">null</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">)<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b>{<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">
l = (</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Line</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">)l.CreateTransformed(fi.GetTransform());<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">
</span><span style="background: white; font-family: "consolas"; font-size: 9.5pt;">lines.Add(l);<o:p></o:p></span></b></div>
<div class="separator" style="clear: both;">
</div>
<div class="MsoNormal">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><b>}</b></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><br /></span></div>
<div class="MsoNormal">
В итоге получаю список линий, с изменённым положением и отмасштабированных таким же образом, как и семейства аннотаций:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCnHRVP5TxtxNcffNsRg8_g6NDtmBtlhoDPNsurXxDHTN6xoSaz1YCjXH9N0QgMZBR8ODNZvbg0TtGDCv0AzuUECysNCFjcQdAH6sGnaudwoPykcQacCGReRs8ZRh2A0DKE1hVZJCabZ4/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCnHRVP5TxtxNcffNsRg8_g6NDtmBtlhoDPNsurXxDHTN6xoSaz1YCjXH9N0QgMZBR8ODNZvbg0TtGDCv0AzuUECysNCFjcQdAH6sGnaudwoPykcQacCGReRs8ZRh2A0DKE1hVZJCabZ4/s320/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" width="320" /></a></div>
<div class="MsoNormal">
Удачи! </div>
</div>
</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com1tag:blogger.com,1999:blog-5410990689513282115.post-21688150736377146132015-12-03T21:07:00.000+03:002015-12-20T22:59:36.628+03:00[Revit API] - Как получить линии из условного обозначения отверстия<div dir="ltr" style="text-align: left;" trbidi="on">
На прошлой неделе Хасан Мамаев задал вопрос:<br />
<blockquote class="tr_bq">
<span style="background-color: #fce5cd;">Я пытаюсь получить геометрию нескольких экземпляров одного плоского семейства таким кодом:<br />i.GetInstanceGeometry()<br />но выдаёт ошибку: AttributeError: 'FamilyInstance' object has no attribute 'GetInstanceGeometry'<br />Объекты, из которых нужно вытянуть линии - условное отображение отверстий:</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5IQjngKxzRAWva4xeMYnrRAq-hv9TbXihjkRprbgu-bWGJnijqCaCqp_o9wm6jat8LNWwfNK2lWsbqPDq1QQA9N5PWnBaAGkZw3YdSeliOyJUREwpDWNut-Wme5PFTKSJ3pREwRewri3P/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" imageanchor="1" style="background-color: #fce5cd; margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5IQjngKxzRAWva4xeMYnrRAq-hv9TbXihjkRprbgu-bWGJnijqCaCqp_o9wm6jat8LNWwfNK2lWsbqPDq1QQA9N5PWnBaAGkZw3YdSeliOyJUREwpDWNut-Wme5PFTKSJ3pREwRewri3P/s1600/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA.PNG" /></a></div>
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">Сегодня появилось время, пытаюсь разобраться.</span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">Первым делом обращаюсь к <b><span style="color: #3d85c6;"><a href="http://help.autodesk.com/view/RVT/2014/RUS/?guid=GUID-F429AAEC-551C-4E0D-9CE0-6F92A5A68CC3">документации</a></span></b>.</span><br />
Есть пример с извлечением геометрии из стены, но применить один в один не удалось.<br />
<br />
После изысканий разработал такой код:<br />
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">List</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><Line> GetLines(Element
element)<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b>{<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b><br /></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">
</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">List</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><Line> lines = </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">new</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">List</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><Line>();<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><br /></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> Autodesk.Revit.DB.</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Options</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> geomOption =
element.Document.Application.Create.NewGeometryOptions();<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><br /></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> (</span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">null</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> != geomOption)<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> {<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> geomOption.View =
element.Document.ActiveView;
<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><o:p><b>
</b></o:p></span></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"> </span><span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;">}</span><o:p></o:p></b></div>
<div class="MsoNormal">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><b><br /></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b>
GeometryElement geometryElement = element.get_Geometry(geomOption);<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><br /></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">
</span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">foreach</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> (GeometryInstance gi </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">in</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> geometryElement)<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b>
{<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">foreach</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> (GeometryObject go </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">in</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> gi.GetInstanceGeometry())<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> {<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> Line l = go </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">as</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> Line;<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><br /></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> (l != </span><span lang="EN-US" style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">null</span><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;">)<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> {<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> lines.Add(l);<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span style="background: white; font-family: "consolas"; font-size: 9.5pt;">}<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> }<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt;"><b> }<o:p></o:p></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><br /></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="background: white; font-family: "consolas"; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: "consolas"; font-size: 9.5pt; mso-highlight: white;">return</span><span style="background: white; font-family: "consolas"; font-size: 9.5pt;"> lines;<o:p></o:p></span></b></div>
<b><br /></b>
<div class="MsoNormal">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><b>}</b></span><o:p></o:p></div>
<div class="MsoNormal">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><br /></span></div>
<div class="MsoNormal">
Этот код заработал для элементов типа <b>Элементы узлов</b>. </div>
<div class="MsoNormal">
Для <b>Типовых аннотаций </b>не работает. Если найду решение, то сделаю продолжение.</div>
<br />
Удачи!</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com1tag:blogger.com,1999:blog-5410990689513282115.post-91680810946004652842015-11-25T07:25:00.001+03:002024-01-31T01:48:25.123+03:00[Revit API] - Граница подрезки вида<div dir="ltr" style="text-align: left;" trbidi="on">
В примере <a href="http://help.autodesk.com/view/RVT/2014/RUS/?guid=GUID-E3DBA0F4-2B15-4A6D-B485-36D15DE0A916"><b><span style="color: #0b5394;">справки</span></b></a> показано создание области подрезки вида по помещению.<br />
<br />
Опишу принцип работы на примере построения прямоугольной границы подрезки вида:<br />
</div><div dir="ltr" style="text-align: left;" trbidi="on"><br />
</div><div dir="ltr" style="text-align: left;" trbidi="on">
</div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-size: small;"><br /></span>
</div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> <span style="color: blue; font-weight: bold;">public</span> <span style="color: red;">void</span> <span style="color: midnightblue; font-weight: bold;">SquareViewCropRegion</span>()<br />
{<br />
_currentView = ActiveGraphicalView;<br />
<br />
<span style="color: teal; font-weight: bold;">try</span><br />
{<br />
<span style="color: green; font-weight: bold;">using</span> (<span style="color: navy;">var</span> tr = <span style="color: darkcyan; font-weight: bold;">new</span> <span style="color: midnightblue; font-weight: bold;">Transaction</span>(Document))<br />
{<br />
tr.<span style="color: midnightblue; font-weight: bold;">Start</span>(<span style="color: blue;">"Изменение границы подрезки вида"</span>);<br />
<br />
<span style="color: midnightblue; font-weight: bold;">ActivateCropBox</span>();<br />
<span style="color: blue; font-weight: bold;">if</span> (!<span style="color: midnightblue; font-weight: bold;">CanCropView</span>())<br />
<span style="color: navy;">return</span>;<br />
<br />
<span style="color: midnightblue; font-weight: bold;">ChangeViewCropRegion</span>();<br />
<br />
tr.<span style="color: midnightblue; font-weight: bold;">Commit</span>();<br />
}<br />
}<br />
<span style="color: teal; font-weight: bold;">catch</span> (Exception ex)<br />
{<br />
TaskDialog.<span style="color: midnightblue; font-weight: bold;">Show</span>(<span style="color: blue;">"ChangeViewCropRegion"</span>,ex.<span style="color: midnightblue; font-weight: bold;">ToString</span>());<br />
}<br />
}</span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> </span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> <span style="color: blue; font-weight: bold;">private</span> <span style="color: red;">void</span> <span style="color: midnightblue; font-weight: bold;">ChangeViewCropRegion</span>()<br />
{<br />
<span style="color: navy;">var</span> ptMin = <span style="color: darkcyan; font-weight: bold;">new</span> <span style="color: midnightblue; font-weight: bold;">UV</span>(-<span style="color: darkblue;">50</span>,-<span style="color: darkblue;">50</span>);<br />
<span style="color: navy;">var</span> ptMax = <span style="color: darkcyan; font-weight: bold;">new</span> <span style="color: midnightblue; font-weight: bold;">UV</span>(<span style="color: darkblue;">50</span>,<span style="color: darkblue;">50</span>);<br />
<br />
<span style="color: green;">// Получение объекта для управления границами подрезки</span><br />
<span style="color: navy;">var</span> manager = _currentView.<span style="color: midnightblue; font-weight: bold;">GetCropRegionShapeManager</span>();<br /></span>
<span style="font-family: courier; font-size: small;"><br />
<span style="color: green;">// Создание списка точек для построения контура</span><br />
<span style="color: navy;">var</span> points = <span style="color: darkcyan; font-weight: bold;">new</span> List<XYZ><br />
{<br />
<span style="color: midnightblue; font-weight: bold;">ConvertUV2XYZ</span>(ptMin),<br />
<span style="color: midnightblue; font-weight: bold;">ConvertUV2XYZ</span>(<span style="color: darkcyan; font-weight: bold;">new</span> <span style="color: midnightblue; font-weight: bold;">UV</span>(ptMax.U,ptMin.V)),<br />
<span style="color: midnightblue; font-weight: bold;">ConvertUV2XYZ</span>(ptMax),<br />
<span style="color: midnightblue; font-weight: bold;">ConvertUV2XYZ</span>(<span style="color: darkcyan; font-weight: bold;">new</span> <span style="color: midnightblue; font-weight: bold;">UV</span>(ptMin.U,ptMax.V)),<br />
<span style="color: midnightblue; font-weight: bold;">ConvertUV2XYZ</span>(ptMin)<br />
};<br /></span>
<span style="font-family: courier; font-size: small;"><br />
<span style="color: green;">// Создание объекта цепочки кривых</span><br />
<span style="color: navy;">var</span> loop = <span style="color: darkcyan; font-weight: bold;">new</span> <span style="color: midnightblue; font-weight: bold;">CurveLoop</span>();<br /></span>
<span style="font-family: courier; font-size: small;"><br />
<span style="color: green;">// Добавление отрезков в цепочку кривых</span><br />
<span style="color: blue; font-weight: bold;">for</span> (<span style="color: navy;">var</span> i = <span style="color: darkblue;">1</span>; i < points.Count; i++)<br />
loop.<span style="color: midnightblue; font-weight: bold;">Append</span>(Line.<span style="color: midnightblue; font-weight: bold;">CreateBound</span>(points[i - <span style="color: darkblue;">1</span>], points[i]));<br />
<br />
<span style="color: green;">// Назначение границ подрезки</span><br />
manager.<span style="color: midnightblue; font-weight: bold;">SetCropShape</span>(loop);<br />
}<span> <br /></span></span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> </span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> <span style="color: blue; font-weight: bold;">private</span> <span style="color: red;">void</span> <span style="color: midnightblue; font-weight: bold;">ActivateCropBox</span>()<br />
{<br />
<span style="color: blue; font-weight: bold;">if</span> (!_currentView.CropBoxActive)<br />
_currentView.CropBoxActive = <span style="color: darkcyan; font-weight: bold;">true</span>;<br /></span>
<span style="font-family: courier; font-size: small;"><br />
<span style="color: blue; font-weight: bold;">if</span> (!_currentView.CropBoxVisible)<br />
_currentView.CropBoxVisible = <span style="color: darkcyan; font-weight: bold;">true</span>;<br />
}<span> </span> <br /></span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> </span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;">
<span style="color: green;">// Проверка на возможность произвольной подрезки вида</span></span><span style="font-family: courier; font-size: small;"><br /></span></div><div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: courier; font-size: small;"> <span style="color: blue; font-weight: bold;">private</span> <span style="color: red; font-weight: bold;">bool</span> <span style="color: midnightblue; font-weight: bold;">CanCropView</span>()<br />
{<br />
<span style="color: blue; font-weight: bold;">if</span> (!_currentView.<span style="color: midnightblue; font-weight: bold;">GetCropRegionShapeManager</span>().CanHaveShape)<br />
{<br />
TaskDialog.<span style="color: midnightblue; font-weight: bold;">Show</span>(<span style="color: blue;">"ChangeViewCropRegion"</span>, <span style="color: blue;">"Текущий вид не предназначен для произвольной подрезки"</span>);<br />
<span style="color: navy;">return</span> <span style="color: darkcyan; font-weight: bold;">false</span>;<br />
}<br />
<br />
<span style="color: navy;">return</span> <span style="color: darkcyan; font-weight: bold;">true</span>;<br />
}<span> </span></span></div><div dir="ltr" style="text-align: left;" trbidi="on"><br />
</div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"><span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><o:p></o:p></span>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><o:p><br /></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: white; font-family: "consolas"; font-size: 9.5pt;"><o:p> </o:p></span>Небольшой метод для перевода координат из локальной системы в систему модели:</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div><span style="font-family: courier;"> <span style="color: blue; font-weight: bold;">private</span> XYZ <span style="color: midnightblue; font-weight: bold;">ConvertUV2XYZ</span>(UV pt)<br />
{<br />
<span style="color: navy;">return</span> _currentView.Origin + _currentView.UpDirection*pt.V + _currentView.RightDirection*pt.U;<br />
}</span><o:p></o:p>
<div class="MsoNormal">
<span style="background: white; font-family: "consolas"; font-size: 9.5pt; line-height: 107%;"><br /></span></div>
<div class="MsoNormal">
Минимальный тестовый пример можно скачать <a href="https://yadi.sk/d/RFl1OmRc3KXnMs"><b><span style="color: #0b5394;">тут</span></b></a>.</div>
<div class="MsoNormal">
Запуск макроса выполняется из диспетчера макросов.<br />
<br /></div>
<div class="MsoNormal">
Удачи!</div>
</div>
Андрей Строительhttp://www.blogger.com/profile/08269396528311486940noreply@blogger.com0