Compute Closest Points between two curves

Hello, follow this link you will have the answers to your questions

a try

import clr
import sys

import System

from System.Collections.Generic import List,IList

clr.AddReference("RevitNodes")
import Revit

clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager 
from RevitServices.Transactions import TransactionManager 

clr.AddReference("RevitAPI")

import Autodesk 
from Autodesk.Revit.DB import *

doc = DocumentManager.Instance.CurrentDBDocument


#######OK NOW YOU CAN CODE########
elem1=UnwrapElement(IN[0])
elem2=UnwrapElement(IN[1])


a=elem1.Location.Curve
b=elem2.Location.Curve
outrefClosest = clr.Reference[IList[ClosestPointsPairBetweenTwoCurves]](List[ClosestPointsPairBetweenTwoCurves]())
res=ClosestPointsPairBetweenTwoCurves()
lst=IList[ClosestPointsPairBetweenTwoCurves]
#c=a.ComputeClosestPoints(b,True,True,True,lst)
d=a.ComputeClosestPoints(b,True,True,True,outrefClosest)
closestPt=outrefClosest.Value[0]
distance=0.3048*closestPt.Distance
Pt_curv1=closestPt.XYZPointOnFirstCurve.ToPoint()
OUT =type(lst),type(outrefClosest),closestPt,distance,Pt_curv1

I tried in CPython with no success.
cordially
christian.stan

3 Likes