Получить геометрию из элемента Revit - PullRequest
0 голосов
/ 30 мая 2019

Я создал следующий код, и Iam застрял при извлечении геометрии из элемента (в моем случае это будет импорт из САПР)

Я ожидаю решения этих проблем:

  1. Как классифицировать или фильтровать типы геометрии в железном питоне.
  2. что такое индексатор #

Я действительно не понял этого, но попробовал тоже ..

options = Autodesk.Revit.DB.Options ()

Selected = Ui.Selection.GetElementIds ()

test = (Selected [0])

Cad = doc.GetElement (тест)

кривые = Cad.Geometry

печать (кривые)

NewCurve = doc.Create.NewDetailCurve (просмотр, кривые [параметры])

Фактический код:

#Import Autodesk stuffs
import clr
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI.Selection import *

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager

# Import iron python packages
import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
sys.path.append(pyt_path)

import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager


app = __revit__.Application
Ui = __revit__.ActiveUIDocument
doc = __revit__.ActiveUIDocument.Document
view = doc.ActiveView


from Autodesk.Revit.UI import Selection

Selected = Ui.Selection.GetElementIds()

test=(Selected[0])

Cad = doc.GetElement(test)

curves = Cad.Geometry

print(curves)

NewCurve = doc.Create.NewDetailCurve(view,curves)

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Вам повезло.Метод GetCurvesInPlane в моем последнем сообщении в блоге о Извлечение вида разреза Геометрия разреза пересечения показывает, как копать глубже в GeometryElement и извлекать Curve объекты, содержащиеся в нем.

0 голосов
/ 31 мая 2019

Вы должны отлаживать свой код шаг за шагом.В отладчике вы можете видеть фактические значения каждой из ваших переменных.Я полагаю, просто глядя на ваш код, что ваша переменная curves является экземпляром GeometryElement.Вам нужно глубже изучить внутреннюю структуру этого элемента, чтобы получить доступ к реальному Curve объекту, который вы вводите в NewDetailCurve.NewDetailCurve жалуется, что вы передаете ему более сложный объект, а не Curve объект.

...