Community
Dear Experts,
Here i am trying to open dwg file from revit api below is my code and exception error,
using System.Diagnostics; using Autodesk.Revit.ApplicationServices; using System.Text; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using System.Threading.Tasks; using System.Reflection; using Autodesk.Revit.DB.Architecture; using System; using AutoCAD; using System.Runtime.InteropServices; using System.IO; using Autodesk.AutoCAD.ApplicationServices; //using Autodesk.AutoCAD.Interop; using Autodesk.AutoCAD.Runtime; //using Autodesk.AutoCAD.ApplicationServices; namespace cad_open { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class main : IExternalCommand { private AcadApplication AcadApp = default(AcadApplication); public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIApplication uiapp = commandData.Application; UIDocument uidoc = uiapp.ActiveUIDocument; Autodesk.Revit.ApplicationServices.Application app = uiapp.Application; Autodesk.Revit.DB.Document doc = uidoc.Document; AcadApp = new AcadApplication(); //AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application"); AcadApp.Visible = true; // AcadApp.ActiveDocument.SendCommand("_MYCOMMAND "); try { using (Transaction mytrans = new Transaction(doc, "Transcation")) { try { DocumentCollection doccol = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager; doccol.Open(@"C:\ProgramData\Autodesk\123.dwg", false); AcadApp.ZoomExtents(); } catch (Autodesk.AutoCAD.Runtime.Exception ex) { TaskDialog.Show("Error1", ex.Message); } } } catch (Autodesk.AutoCAD.Runtime.Exception ex) { TaskDialog.Show("Error1", ex.Message); } return Result.Succeeded; } }
Regards
Mass.R
Hi @massretailers,
I'm no expert in this field, but here are a couple of things to check (these are for AutoCAD 2013, so may be a touch out of date):
Here's the quick and dirty (VB.NET) code I have used:
Private progID As String = "AutoCAD.Application.19" Try acApp = DirectCast(GetObject(, progID), _
Autodesk.AutoCAD.Interop.AcadApplication) Catch ex As System.Exception Try Dim acType As Type = Type.GetTypeFromProgID(progID) acApp = DirectCast(CreateObject(progID), _
Autodesk.AutoCAD.Interop.AcadApplication)
Catch ex2 As System.Exception MessageBox.Show((Convert.ToString( _ "Cannot create object of type """) & progID) + """") End Try End Try
Cheers,
-Matt