0

我已经创建了以下代码,并且一直坚持从元素中提取几何图形(在我的情况下,它将是 CAD 导入)

我期待这些解决方案:

  1. 如何在铁蟒中分类或过滤几何类型。
  2. 什么是索引器#

我真的不明白这一点,但我也试过这个..

选项 = Autodesk.Revit.DB.Options()

选定 = Ui.Selection.GetElementIds()

测试=(选择[0])

CAD = doc.GetElement(测试)

曲线 = Cad.Geometry

打印(曲线)

NewCurve = doc.Create.NewDetailCurve(view,curves[options])

实际代码:

#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)
4

2 回答 2

0

你很幸运。我最新的关于检索剖面视图交叉切割几何GetCurvesInPlane的博客文章中的方法展示了如何深入挖掘并提取其中包含的对象。GeometryElementCurve

于 2019-05-31T09:42:09.463 回答
0

您应该逐步调试代码。在调试器中,您可以看到每个变量的实际值。我相信,仅通过查看您的代码,您的变量curves就是一个GeometryElement实例。您需要深入挖掘该元素的内部结构才能访问Curve您输入的实际对象NewDetailCurveNewDetailCurve抱怨你传递给它的是一个更复杂的对象,而不是一个Curve对象。

于 2019-05-31T09:38:52.240 回答