Please help.
When the dynamo script runs via Batch Save Utility, it will save failed. (The log is showing “save failed(errorno:-1073741571)”)
However, the dynamo script can be successfully run via the Civil 3D dynamo platform. I guess Python may be the issue when using Batch Save Utility?
Below is the Python used inside the Dynamo script for getting the information from the pressure pipe network:
import sys
import clrAdd 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’)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 *adoc = acapp.DocumentManager.MdiActiveDocument
ed = adoc.Editor
civdoc = CivilApplication.ActiveDocumentPROFILE_VIEWS = IN[0]
def move_labels(PROFILE_VIEWS):
if not hasattr(PROFILE_VIEWS, “iter”):
PROFILE_VIEWS = [PROFILE_VIEWS]error_report = None all_resp = [] all_resf = [] all_resa = [] try: with adoc.LockDocument(): with adoc.Database as db: with db.TransactionManager.StartTransaction() as t: for PROFILE_VIEW in PROFILE_VIEWS: sampleLineId = PROFILE_VIEW.InternalObjectId objVIEW = t.GetObject(sampleLineId, OpenMode.ForWrite) resp = [] resf = [] resa = [] for i in objVIEW.GetPipeIds(): objpp = t.GetObject(i, OpenMode.ForWrite) resp.append(objpp.Name) for i in objVIEW.GetFittingIds(): objpf = t.GetObject(i, OpenMode.ForWrite) resf.append(objpf.Name) for i in objVIEW.GetAppurtenanceIds(): objpa = t.GetObject(i, OpenMode.ForWrite) resa.append(objpa.Name) all_resp.append(resp) all_resf.append(resf) all_resa.append(resa) t.Commit() except: import traceback error_report = traceback.format_exc() if error_report is None: return [all_resp, all_resf, all_resa] else: return error_report
OUT = move_labels(PROFILE_VIEWS)
Similar Case:
Test_Pressure Pipe Network.dyn (131.6 KB)