Результаты поиска для 'подключени всех библиотек'

Главная Форумы Поиск Результаты поиска для 'подключени всех библиотек'

Просмотр 4 результатов — с 1 по 4 (из 4)
  • Автор
    Результаты поиска
  • #8400
    Анатолий
    Участник
    37 pts

    Запишу, чтобы не забыть.
    import clr
    clr.AddReference("RevitNodes")
    import Revit
    family=IN[0] # на вход подаем семейство
    familyName=family.Name
    types = family.Types #получение всех типов семейства без подключения каких-либо библиотек
    types = Revit.Elements.Family.ByName(familyName).Types #получение всех типов семейства (по имени семейства) с библиотеками import clr/clr.AddReference("RevitNodes")/import Revit
    elements = []
    for type in types:
    elem = Revit.Elements.FamilyInstance.ByFamilyType(type) #получение всех экземпляров данного семейства (с теми же подключаемыми библиотеками)
    elements.append(elem)
    OUT = elements

    #5658

    В ответ на: Шаблон (python)

    Legantmar
    Хранитель
    473 pts

    Для новичков несколько пояснений по библиотекам в шаблоне.

    # Подключение библиотеки Revit API для работы с элементами Revit'a
    clr.AddReference('RevitAPI') # RevitAPI.dll лежит как правило здесь C:\Program Files\Autodesk\Revit 2017
    import Autodesk
    from Autodesk.Revit.DB import * # импорт всех элементов, если к примеру нужны только стены, то * заменяется на Wall
    import sys
    pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib' # добавление пути к директории IronPython для использования его библиотек
    sys.path.append(pyt_path)
    # Использование библиотеки ProtoGeometry для геометрических фигур (точки, линии, окружности, дуги, кривые и пр.)
    clr.AddReference('ProtoGeometry') # ProtoGeometry.dll лежит здесь C:\Program Files\Dynamo\Dynamo Core\1.3
    from Autodesk.DesignScript.Geometry import *
    # Использование библиотеки DSCoreNodes (основные ноды расположенные на вкладке библиотеки слева в разделе Core)
    clr.AddReference("DSCoreNodes") # DSCoreNodes.dll лежит здесь C:\Program Files\Dynamo\Dynamo Core\1.3
    import DSCore
    clr.ImportExtensions(DSCore)
    from DSCore import *
    # Упрощенные ноды для работы с объектами Revit
    clr.AddReference("RevitNodes") # RevitNodes.dll лежит здесь C:\Program Files\Dynamo\Dynamo Revit\1.3\Revit_2017
    import Revit
    clr.ImportExtensions(Revit.Elements)
    from Revit.Elements import *
    clr.ImportExtensions(Revit.GeometryConversion) # позволяет конвертировать величины
    clr.ImportExtensions(Revit.GeometryReferences)
    # Для использования транзакций и работе с документом (doc)
    clr.AddReference("RevitServices") # RevitServices.dll лежит здесь C:\Program Files\Dynamo\Dynamo Revit\1.3\Revit_2017
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    doc = DocumentManager.Instance.CurrentDBDocument
    uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
    uiapp=DocumentManager.Instance.CurrentUIApplication
    app = uiapp.Application
    # Для работы с Excel из питона (если вы не используете сторонние пакеты)
    clr.AddReferenceByName('Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c')
    from Microsoft.Office.Interop import Excel
    System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo("en-US")
    from System.Runtime.InteropServices import Marshal
    # в некоторых случаях, при "глубоком погружении" в Revit API, нужны системные массивы System Array
    import System
    from System import Array
    from System.Collections.Generic import *
    # Прочие библиотеки
    import math # работа с математическими функциями (cos, sin, pi и пр.)
    import random # генерация случайных чисел
    import re # работа с регулярными выражениями

    но лучше их записывать как:
    from math import *
    в этом случае не нужно будет таскать приставку math.pi, а можно сразу использовать pi

    Для того чтобы не писать постоянно UnwrapElement() рекомендую использовать в шаблоне функцию:

    Если вы не знаете сколько будете подавать на вход элементов 1 или несколько, то рекомендую использовать вот эту запись:

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

    Ниже состав некоторых часто используемых библиотек:
    Protogeometry

    DSCoreNodes


    RevitNodes

    Revit Nodes продолжение

    Legantmar
    Хранитель

    хотелось бы:
    – кнопку применить, без закрытия окна (для отладки скрипта)
    – проверка и подсветка опечаток основных команд во время набора (например, часто ошибаюсь в UnwrapElelemnt)
    – сократить команду UnwrapElement например до UE, а еще лучше сделать ее автоматической и опустить по умолчанию (т.е. все входящие элементы “разворачиваются” в редакторе)
    – создать список всех наиболее востребованных библиотек, которые подключались бы простой командой типа all dll (по аналогии с import clr), утомляет все это копировать из скрипта в скрипт и отслеживать, а не пропустил ли какую…

    #720
    Dmitry_dronov
    Модератор

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

    Еще одной важной библиотекой является Revit Elements.

    Еще одной не менее важной является библиотека Core

    Код, подгружающий библиотеку ProtoGeometry:

    Код, подгружающий Revit Elements:

    Как подгружать библиотеку Core:

Просмотр 4 результатов — с 1 по 4 (из 4)