Как получить доступ
Главная › Форумы › Задать вопрос › Как получить доступ
- В этой теме 4 ответа, 3 участника, последнее обновление 2 года, 9 месяцев назад сделано yivif.
-
АвторСообщения
-
VadimBelovУчастник
Как получить доступ к параметру экземпляра вложенного семейства
Приветствую вас уважаемые коллеги!
Думаю я не первый задаю этот вопрос, но штудировать все ветки форума задача непосильная. В свое оправдание могу сказать, что постарался оформить свой вопрос максимально информативно.
Как известно в штатном режиме, при размещении в проекте модели с вложенными семействами, получить доступ к параметрам экземпляра вложенного семейства невозможно. Оно неактивно, даже если это вложенное семейство, нажимая Tab выбрать отдельно и соответственно не активно для внесения значений в спецификации.
К примеру, у меня есть модель гидрострелки, в которую сразу вложены шаровые краны, пробки и прочая «мелочь», используемая при обвязке данного узла:
Для этого узла, пошел «тупым» рутинным путем, а именно в родительском семействе создал параметры для «Позиция для кранов», «Позиция для пробок» и т.д. и соответствующие параметры вложенных семейств связал с этими родительскими и таким образом получил возможность прямо из проекта внести соответствующие значения.
Однако метод очень деревянный и подходит для семейств с небольшим количеством вложений и даже при этом не закрывает всех необходимых вариантов функционала.
Скажу также пару слов о спецификации.
Через некоторое количество итераций удалось найти универсальный состав параметров для семейства, который позволяет сформировать спецификацию в том виде, которого хотелось изначально добиться:
В моем шаблоне (думаю, что этим путем идет большинство пользователей) есть параметр, который отвечает за «Позицию» в спецификации. Это текстовый параметр экземпляра. Соответственно, после разработки модели объекта, я методично, по порядку заполняю номера в поле «Позиция» и таким образом однозначно идентифицирую те или иные элементы на чертежах, проставляя марку элемента с этим параметром.
Пока эта концепция казалась очень клевой. Вложенные семейства автоматом попадают в спецификацию. Их можно промаркировать отдельно от родительского. В общем куча профита, от которого не хочется отказываться.
Но дальше мне захотелось еще большего. Я создал универсальный и крепко запараметризированный радиатор, в который вложил почти всю радиаторную обвязку, а именно – футорки правые/левые, пробки, воздухоотводчики ручные/автоматические (на выбор) и т.д.
Поскольку у радиатора может быть несколько вариантов подключения, то пришлось и это параметризировать. Это же в свою очередь заставило пойти таким путем – Делаем отдельно сборку секций радиатора, делаем отдельно сборку обвязочных элементов, в которой настраиваем параметризацию. В обвязочной сборке участвуют вложенные семейства с включенным параметром «общий». Затем это все загружается в корневое семейство «радиатор» где еще немного допиливается параметризация.
Далее используем в проекте. С точки зрения ускорения работы по расстановке радиаторов в модели все супер. Поскольку выбор того или иного варианта подключения происходит нажатием одной кнопки, все перерисовывается, и автоматом специфицируется. Нет необходимости заниматься проработкой обвязки каждого радиатора по отдельности. В общем, этот путь кажется очень перспективным, хоть и сложным с точки зрения создания семейств. Но трудозатраты точно окупаются.
Но вот невозможность получить доступ к параметрам экземпляра вложенных семейств, а именно «Позиции», ставит над этой концепцией большой вопрос. Поскольку на примере радиатора, там уже появляются 3х этажные вложения, в которых вложенные общие семейства находятся на самом дне, а вариантов исполнения может быть очень много, то применить первый способ описанный выше становится почти не возможно. Т.е. можно, но он становится адски не эффективным. Для этого радиатора к примеру нужно ввести порядка 10 параметров, каждый из которых при помощи 3х этажных связей предоставит доступ к позиции нужного вложенного семейства. Эти параметры нужно заполнять в ручную, выбирая по отдельности каждый радиатор, смотря какой у него тип подключения (левый, диагональный, нижний) и затем параллельно смотря в спецификацию какой у, к примеру, левой футорки, порядковый номер в спецификации и так по порядку по каждому радиатору. В общем, это такая практика, от которой хочется уйти любой ценой. Потому как если нумерация в спецификации поменяется, второй/третий и т.д. раз проделывать эти танцы с бубном никак неохота.
Теперь собственно вопрос!!!
Прошу опытных товарищей, подсказать, есть ли смысл искать решение этой проблемы при помощи Динамо?
К примеру, если бы сделать скрипт, в котором можно было бы прописать название семейства (вложенного), он выбрал в модели все эти семейства и принудительно присвоил их параметру «Позиция» нужное значение. Пускай придется пройтись по каждому вложенному семейству по отдельности, но это очень существенно ускорит процесс простановки значений «позиция» вложенным общим моделям.
Кто что скажет на этот счет, есть шанс? Или не заморачиваться, отказаться от использования таких 3х этажных сборок и в проекте все раскидывать поэлементно?
Тяжело без примера проекта)).
Если очень коротко: есть семейство с вложенным семейством, в котором есть вложенное семейство? Необходимо для каждого вложенного семейства очень быстро менять параметр “позиция”?
Если не хотите выкладывать своё сложное семейство, можете сделать аналог из простых кубиков и выложить?
VadimBelovУчастникПризнаюсь честно, конечно немного жалко выкладывать, но это явно некрасиво, просить помощи и жаться))))
Выложил файл проекта, там расположено несколько экземпляров семейства радиаторов разных моделей.
https://drive.google.com/open?id=1UQD5MH4IEVKYTzv-c0hNt0MS1buatmXu
Вчера вечером начал пытаться вникать в очередной раз в Динамо, в итоге получил вот такой результат:
В общем, для вложенных общих семейств параметры экземпляра – только для чтения.
На примере радиатора хочу еще раз раскрыть суть проблемы.
У меня сейчас в голове только один очевидный путь в голове держится. В родительском семействе, где собраны все сборки и настроено их взаимодействие, ввести нужное количество текстовых параметров экземпляров и дальше вниз во вложения проложить им связь, добравшись таким образом до тех вложений, которым в конечном счете нужно присвоить нужное значение.
Теперь по порядку:
1 семейство – родительское
Элементы, которым нужно присвоить номер «Позиции» лежать в следующем вложении «Обвязочная сборка хранилище». Идем дальше:
В «Обвязочной сборке хранилище» лежит еще два вложения, и одно из них «Обвязочная сборка»
И вот в нем уже лежат нужные элементы
А теперь суть проблемы, которая не дает возможность реализовать полу-ручной способ внесения значений в поле «Позиция» при помощи связи параметров от Родительского к Вложениям.
Конкретно в этом случае (Радиатора), может быть несколько вариантов подключения.
К примеру – диагональное справа
В левом нижнем углу установлена футорка левая.
А к примеру для одностороннего правого подключения в этом месте уже будет установлена ПробкаЛевая
Таким образом, чтобы однозначно внести нужному элементу нужный номер «Позиция» в родительском семействе и далее во вложениях создать параметр, к примеру «Позиция для левого нижнего угла – Фитинг»,
Далее в проекте брать каждый отдельно взятый радиатор, смотреть какой у него тип подключения и соответственно, при этом типе подключения, какой фитинг предусмотрен, футорка или пробка, затем если к примеру это «Футорка левая 1’’x½”» смотреть какой у нее получается порядковый номер в спецификации должен быть, к примеру 1.22 и соответственно в ручную вносить это значение. Для другого типа подключения, там уже может быть пробка, тогда нужно зайти в спецификацию, посмотреть какой порядковый номер у пробки и т.д. И так по 15-20 радиаторам, размещенным в проекте, при том, что нужно будет таким способом обработать 4 угла для фитингов и 4 угла для арматуры (поскольку в семействе предусмотрена установка воздухоотводчиков автоматом, а они тоже могут быть разных диаметров, ручные/автоматические, правые/левые)
И если, к примеру, нумерация в спецификации поменяется, все придется повторять по новой, а она наверняка поменяется.
В общем, вырисовывается «геморрой» колоссальный.
С другой стороны всю эту мелочевку расставлять в проекте для каждого радиатора в ручную это тоже задача не из самых интересных. (а отрисовывать и учитывать эти вещи нужно обязательно, так как радиатор продается отдельно, футорки отдельно, воздухоотводчики отдельно)
При том, что вот он нужный результат уже почти рядом:
Элементы в модели расставлены автоматически (в составе радиатора), в нужном месте в нужной последовательности в соответствии с типом подключения, попали в спецификацию, посчиталось количество.
Осталось бы только вписать нужный номер «Позиция» и на развертках марки проставить и дело сделано.
Но к сожалению пока не понятно как преодолеть эту проблему.
Параметры экземпляра для вложенных общих семейств в проекте «Read only»
Как думаете, есть возможность средствами Динамо и Питон или скриптами и API это преодолеть и решить эту задачу?
К примеру в спецификации выбираю все вложенные экземпляры одного из типов:
Далее перехожу в динамо и запускаю скрипт, который получает доступ к их параметрам, которые в обычном режиме Read only, и вписывает нужное значение.
И так по всем позициям, которые вложенные в другие семейства, но общие и подлежащие учету в спецификации.
Даже такой полу-ручной способ к примеру для меня был бы абсолютно приемлем по трудозатратам.
Думаю решение этой задачи помогло бы многим людям
Изменяемый параметр должен быть добавлен через вкладку “Управление” как “Параметр проекта” либо “Общий параметр”. Посмотрите файл, я там добавил параметр “sche_Позиция”:
https://www.dropbox.com/s/mhat8j7ddihao3a/%D1%82%D0%B5%D1%81%D1%82_1.rvt?dl=0
yivifУчастникПривет.
Попробуй удалить в семействах параметр ADSK_Позициция (или какой у вас параметр отвечает за неё), в проекте Управление → Параметры проекта → Добавить → Общий параметр → ADSK_Позиция → Справа в категориях отмечаете категории семейств, которые используются и для которых нужно задать позицию → ОК. Теперь для вложенных семейств через Tab должна проставляться позиция. -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.