Добрый день! Подскажите, пожалуйста, что тут надо изменить, чтоб ревит 2022 съел этот код и не подавился?
Ошибка в строке "from Autodesk.Revit.DB import FilteredElementCollector , View , ViewType , ElementId , FamilyInstance , Document , UnitType , UnitUtils"
"ImportError: Cannot import name UnitType".
(остальной код не привожу и скрипт не выкладываю, поскольку проблема явно в импорте.. того, что там в этой строке импортируется : D)
from Autodesk.Revit.DB import FilteredElementCollector , View , ViewType , ElementId , FamilyInstance , Document , UnitType , UnitUtils ***Спойлеркод pythonimport 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')
Да, и похоже, это "UnitType" устарело.. Только на что и как его теперь менять..
А в общем-то, оказалось можно жить и без него!
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 )))
И - паллиативненько, но работает же! )))