# 載入 Python 標準資源庫和 DesignScript 資源庫 import sys import clr clr.AddReference('ProtoGeometry') from Autodesk.DesignScript.Geometry import * import numpy as np sys.path.append(r'C:\Users\Annie\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages') from pyswarm import pso # 此節點的輸入將在 IN 變數中儲存為一個清單。 RoomSur = IN[0] ObsGeo = IN[1] C = IN[2] # 在此行下方放入您的程式碼 positions = [[0.2,0.3],[0.9,0.6]] total_overlap_volume = 0 for i in range(List.Count(RoomSur)): overlap_volume = 0 x,y = positions[i] P = RoomSur[i].PointAtParameter(x,y) vector1 = Vector.ZAxis(); geometry1 = Geometry.Translate(P, vector1, 1.2); vector2 = Vector.XAxis(); D1 = 0.2; t1 = 0.55 + D1; geometry2 = Geometry.Translate(P, vector2, t1); geometry3 = Geometry.Translate(geometry2, vector1, 0.65); vector3 = Vector.Reverse(vector2); geometry4 = Geometry.Translate(geometry3, vector3, 0.2); geometry5 = Geometry.Translate(geometry4, vector1, 0.55); t4 = [P, geometry1, geometry5, geometry4, geometry3, geometry2]; t5 = np.transpose(t4); polyCurve1 = PolyCurve.ByPoints(t5,True); V = Solid.ByRevolve(polyCurve1, P, Vector.ByCoordinates(0, 0, 1), 0, 360); for j in range(len(ObsGeo[i])): g = ObsGeo[i][j] vv = g.Intersect(V) volume = vv.Volume total_overlap_volume += volume # 指定輸出至 OUT 變數。 OUT = total_overlap_volume