Spot Coordinates с помощью Dynamo+Python

Главная Форумы Python Помогите с питон кодом Spot Coordinates с помощью Dynamo+Python

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Автор
    Сообщения
  • #3107 Score: 1
    antonbond
    Участник
    5 pts

    Ребята, прошу помощи более опытных товарищей, не так давно начал вникать в Python. Топчусь на месте и не могу никак разгрести..
    Задача: написать Python скрипт для простановки координат(Spot Coordinates) колонн по вверхправ / нижний левый углам, используя NewSpotCoordinate Method. С видом, точками все понятно, но я завис на Reference. Как создать ReferenceArray и вытянуть из геометрии колонн нужные References?? я так понимаю, мне нужны крайние точки Curves или Edges..
    может кто посоветовать что-то по теме? спасибо за помощь

     

    #3110 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Нашел только одну ссылку http://thebuildingcoder.typepad.com/blog/2010/01/spot-elevation-creation-on-top-of-beam.html да о то не помогло. Каким образом получается референс непонятно

    #3114 Score: 0
    Legantmar
    Хранитель
    475 pts

    это можно сделать, я позже покажу (но это довольно сложный метод)

    проще на мой взгляд идти этим путем:

    #3115 Score: 0
    antonbond
    Участник
    5 pts

    Legantmar, Khasan спасибо за отклик. Я блог Таммика перечитал вдоль и поперек в поисках моей темы..ничего похожего на мой случай не нашел..
    буду очень признателен, если поможете разобраться как скомпьютить референсы используя именно Python+Revit API.

    Legantmar, Я еще на начальной стадии отбросил предложенный Вами вариант, т.к. у меня сейчас в проекте 7 типоразмеров колонн, около 80 колонн на уровне и половина не ортогональны – повернуты к осям Х-У на 30/45/60 градусов. Слушком много IFs если идти  методом LocationPoint + Offset.. Для меня более универсальным решением кажется будет NewSpotCoordinateMethod и четкий Python script + можно использовать в дальнейшем без адаптации под каждый частный случай

    #3116 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

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

    #3129 Score: 0
    antonbond
    Участник
    5 pts

    да дело то не в точках – их найти совсем труда не составит даже используя native Dynamo ноды, но создать Spot Coordinate элемент по точкам не получится..вопрос в том, как в Python скрипте сделать stable reference для NewSpotCoordinate Method.. 3тий день копаю и впустую..щас на англозычных ресурсах спрашивать буду.. в любом случае, спасибо что обратили внимание))
    кстати посмотрел Ваше видео, Хасан. Довольно интересно смешать все это дело с DynamoRebar package от Core Studio

    #3130 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    А в чем прелесть NewSpotCoordinate Method? Почему только так? Касательно взаимодействия с DynamoRebar скажу что я сделал свой скрипт армирования изза недостатков нодов Core Studio)

    #3131 Score: 0
    Legantmar
    Хранитель
    475 pts

    > да дело то не в точках — их найти совсем труда не составит

    видимо я зря старался.. (reference к сожалению достать не удалось)

    Скачать скрипт

    update:
    попробовал из точки сделать reference point, но пишет, что сделать это можно только в семействе ((

    update2:

    при внимательном рассмотрение понял, что ребра (edges) достаются из family instance относительно центра семейства и ничего общего с глобальными пространственными не имеют ((.

    #3132 Score: 0
    antonbond
    Участник
    5 pts

    когда построены curves в Dynamo, скомпьютить армирование используя DynamoRebar проще простого…. На мой взляд ваш подход для армирования колонн хорош, ничего не имею против. Просто его дорабатывать нужно для различных типов армирования, в то время как DynamoRebar уже пакетом и custom нодами “сидит” в  Dynamo.  B чем Вы видите недостатки DynamoRebar?!

    насчет NewSpotCoordinate Method.. хорош тем, что универсален и “привязан” к колонне. не важен типоразмер колонн, положение в плане.. Если колонны подвигать, координаты динамически апдейтяться и т.д. Создать элемент координат без reference невожможно. Точкой не задать положение Spot Coordinate. Это системное семейство..короче, как размеры. похожий класс. для создания, ему нужен референс к геометрии..
    как альтернатива конечно, создать новое generic annotation семейство и запитать координаты точек с помощью Динамо..но это если не разберусь как сделать в Python..

    #3136 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Первая версия пакета DynamoRebar не имела опцию для выбора крюка на конце стержня и крюк был по умолчанию. Также были глюки с разными версиями Динамо и Ревит. Мои знакомые динамщики даже написали скрипт в Питоне, чтобы избавиться от крюков. В дальнейшем разработчики исправили этот промах, но мне это было уже неинтересно, потому что я уже написал сам код для армирования, который имел на вход всего три слота(кривые, тип арматуры, армируемый элемент). В принципе можно использовать первую часть моего скрипта для получения геометрии в Динамо, а далее заменить нодами DynamoRebar, это уже как душе угодно.

    #3140 Score: 0
    Legantmar
    Хранитель
    475 pts

    #3141 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Антон а что будет если двинуть колонну?

    #3142 Score: 0
    Legantmar
    Хранитель
    475 pts
    #3202 Score: 1
    Dmitry_dronov
    Модератор
    50 pts

    Очень нравится сложность задачи. Хотелось бы решить её именно в том виде в котором поставил её автор.
    К сожалению до конца не знаю как.
    Но могу помочь с Geometry и с Edge’s в питоне.

     

    #3205 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Антон видел твой вопрос на главном сайте. Ответ Собона чем то помог?

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Для ответа в этой теме необходимо авторизоваться.