Revit API Forum
Welcome to Autodesk’s Revit API Forums. Share your knowledge, ask questions, and explore popular Revit API topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Exception Error

1 REPLY 1
Reply
Message 1 of 2
massretailers
449 Views, 1 Reply

Exception Error

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 

1 REPLY 1
Message 2 of 2

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):

  • Your project should have ComVisible set to TRUE.
  • References to:
    • Autodesk.AutoCAD.Interop
    • Autodesk.AutoCAD.Interop.Common
  • Comment out all code except opening/getting AutoCAD. Once you have that running, add further steps.

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


Cheers,

-Matt
_______________________________________________________________________________
Marking a post as a 'solution' helps the community. Giving a post 'Kudos' is as good as saying thanks. Why not do both?

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Rail Community