Поделиться:
Уведомления
Очистить все

Скрипт Dynamo, работавший под Revit 2020, в 2022 выдает ошибку. Помогите отловить...

1 Сообщения
1 Пользователи
0 Лайки
421 Просмотры
0
Автор темы

Добрый день! Подскажите, пожалуйста, что тут надо изменить, чтоб ревит 2022 съел этот код и не подавился? 

Ошибка в строке "from Autodesk.Revit.DB import FilteredElementCollector , View , ViewType , ElementId , FamilyInstance , Document , UnitType , UnitUtils"

 "ImportError: Cannot import name UnitType". 

(остальной код не привожу и скрипт не выкладываю, поскольку проблема явно в импорте.. того, что там в этой строке импортируется : D) 

Спойлер
код python
import clr import sys pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib' sys.path.append(pyt_path) import os import webbrowser import unicodedata    try:     clr.AddReference('System.Windows.Forms')     clr.AddReference('System.Drawing')     clr.AddReference('System.Windows.Forms.DataVisualization')        from System.Drawing import Point , Size , Graphics, Bitmap, Image, Font, FontStyle, Icon, Color, Region , Rectangle , ContentAlignment     from System.Windows.Forms import Application, DockStyle, Button, Form, Label, TrackBar , ToolTip, ColumnHeader, TextBox, CheckBox, FolderBrowserDialog, OpenFileDialog, DialogResult, ComboBox, FormBorderStyle, FormStartPosition, ListView, ListViewItem , SortOrder, Panel, ImageLayout, GroupBox, RadioButton, BorderStyle, PictureBox, PictureBoxSizeMode, LinkLabel, CheckState, ColumnHeaderStyle , ImageList, VScrollBar, DataGridView, DataGridViewSelectionMode, DataGridViewAutoSizeColumnsMode , DataGridViewClipboardCopyMode , TreeView , TreeNode , TreeNodeCollection     from System.Windows.Forms.DataVisualization.Charting import Chart , SeriesChartType     from System.Collections.Generic import *     from System.Collections.Generic import List as iList     from System.Windows.Forms import View as vi     clr.AddReference('System')     from System import IntPtr , Char     from System import Type as SType     from System.ComponentModel import Container     clr.AddReference('System.Data')     from System.Data import DataTable , DataView      clr.AddReference('RevitAPIUI')     from  Autodesk.Revit.UI import Selection , TaskDialog      from  Autodesk.Revit.UI.Selection import ISelectionFilter        importcolorselection = 0         try:         from  Autodesk.Revit.UI import ColorSelectionDialog     except:         importcolorselection = 1        clr.AddReference('RevitNodes')     import Revit     clr.ImportExtensions(Revit.Elements)     clr.ImportExtensions(Revit.GeometryConversion)       clr.AddReference('RevitServices')     from RevitServices.Persistence import DocumentManager     doc = DocumentManager.Instance.CurrentDBDocument     uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument     clr.AddReference('RevitAPI')
    from Autodesk.Revit.DB import FilteredElementCollector , View , ViewType , ElementId , FamilyInstance , Document , UnitType , UnitUtils ***
image
1 Ответ
0
Автор темы

Да, и похоже, это "UnitType" устарело.. Только на что и как его теперь менять.. 

image

А в общем-то, оказалось можно жить и без него! 

    from Autodesk.Revit.DB import FilteredElementCollector , View , ViewType , ElementId , FamilyInstance , Document , UnitUtils # , UnitType 

UnitUtils поставил левее, старичка закомментил.. И поскольку нужен он был вроде как только для того, чтоб текущие единицы проекта выдергивать, а они у нас завсегда - миллиметры, то 

UIunit = "DUT_MILLIMETERS" вместо UIunit =Document.GetUnits(doc).GetFormatOptions(UnitType.UT_Length).DisplayUnits   )))

И - паллиативненько, но работает же! )))

Это сообщение было изменено 10 месяцев назад от Alexandr
Ответ