hi
see this
import sys
import clr
import csv
# Add Assemblies for AutoCAD and Civil 3D APIs
clr.AddReference('acmgd')
clr.AddReference('acdbmgd')
clr.AddReference('accoremgd')
clr.AddReference('AecBaseMgd')
clr.AddReference('AecPropDataMgd')
clr.AddReference('AeccDbMgd')
clr.AddReference('AeccPressurePipesMgd')
clr.AddReference('acdbmgdbrep')
clr.AddReference('System.Windows.Forms')
clr.AddReference('Civil3DNodes')
sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')
# Create an alias to the Autodesk.AutoCAD.ApplicationServices.Application class
import Autodesk.AutoCAD.ApplicationServices.Application as acapp
# Import references from AutoCAD
from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *
# Import references for Civil 3D
from Autodesk.Civil.ApplicationServices import *
from Autodesk.Civil.DatabaseServices import *
# Add references to manage arrays, collections and interact with the user
from System import *
from System.IO import *
from System.Collections.Specialized import *
adoc = acapp.DocumentManager.MdiActiveDocument
ed = adoc.Editor
civdoc = CivilApplication.ActiveDocument
PROFILE_VIEW = IN[0]
objects = IN[1]
def move_labels(ids,PROFILE_VIEW):
if not hasattr(PROFILE_VIEW, "__iter__"):
PROFILE_VIEW = [PROFILE_VIEW]
if not hasattr(ids, "__iter__"):
ids = [ids]
error_report = None
res = []
try:
with adoc.LockDocument():
with adoc.Database as db:
with db.TransactionManager.StartTransaction() as t:
sampleLineId1 = PROFILE_VIEW[0].InternalObjectId
objVIEW1 = t.GetObject(sampleLineId1, OpenMode.ForWrite)
sampleLineId2 = ids[0].InternalObjectId
objVIEW2 = t.GetObject(sampleLineId2, OpenMode.ForWrite)
corid2oN = t.GetObject(objVIEW2.NetworkId, OpenMode.ForWrite)
minLength = 0
boundaryEntities = corid2oN.FindShortestNetworkPath(objVIEW2.Id,objVIEW1.Id,float(minLength))
for sid in boundaryEntities[0]:
site = t.GetObject(sid, OpenMode.ForRead)
res.append(site.Name)
t.Commit()
except:
import traceback
error_report = traceback.format_exc()
if error_report is None:
return res
else:
return error_report
OUT = move_labels(objects,PROFILE_VIEW)