Python - 将数组中的每个项目与另一个项目进行比较(Dynamo)

时间:2017-12-11 13:33:15

标签: python arrays geometry

我是编程新手,上周才开始编写我的第一行代码。

我正在一个名为dynamo的程序中编写脚本,这将在我的项目中使用。经过一些研究,似乎我需要使用python。

我需要脚本做的是查看一堆行(在一个名为Revit的程序中),拾取该行的几何,然后检测是否有任何其他行具有接触的起点或终点有几何形状。然后我想在那一点拆分该行,这可以通过Curve.SplitByPoints来完成,但是我需要某种方式将所有行与所有起点/终点进行比较,然后输出的方式是输出可以是用于按点分割曲线。我可以有线和切入点。

我试着解释说我能做到最好......

代码:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

dataEnteringNode = IN
Line = IN[0]                    #Line
LPS = IN[1]                     # Line Point Start
LPE = IN[2]                     # Line Point End
LPC = IN[3]                     # Line Point Combined // Maybe not needed
T = 100                         # Tolerance of Intersection
INT1 = []                       # Blank Variable for First Loop Results
INT2 = []                       # Blank Variable for First Loop Results
result1 = []                    # Blank Variable for Second Loop Results
result2 =[]                     # Blank Variable for Second Loop Results

for i in range (0,len(LPS)):
distance = Curve.DistanceTo(LPS[i],Line[i])
INT1.append(distance)

for i in range (0,len(LPE)):
distance = Curve.DistanceTo(LPE[i],Line[i])
INT2.append(distance)

for i in range (0,len(INT1)):
if INT1 > T:
    result1.append('T1')
else:
    result1.append('F1')

for i in range (0,len(INT2)):
if INT2 > T:
    result2.append('T2')
else:
    result2.append('F2')

    Assign your output to the OUT variable.
    OUT = result1, result2

编辑:

抱歉,我知道解释这对我来说很棘手。

我会尝试简化它。

我想要类似的东西:

if curve intersect with StartPoint or EndPoint
     Curve.split points(Curve,Intersecting_Point)

因此,我希望类似的东西会如此,当一个起点或终点与一条曲线相交时,曲线将在那一点被分成两条曲线。

所以我想在上面开展一系列工作。我画了一张图并尝试上传,但出于某种原因,它现在说我需要10个代表来发布图像。这意味着我无法上传新的图表,不得不删除我的图表?

感谢您的帮助!对不起我的解释技巧

0 个答案:

没有答案