using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using SampleClasses; using System.Runtime.InteropServices; using Microsoft; using Microsoft.VisualBasic; using Autodesk.AutoCAD; using Autodesk.AutoCAD.Interop; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.ApplicationServices; using acadApp = Autodesk.AutoCAD.ApplicationServices.Application; using AcadDB = Autodesk.AutoCAD.DatabaseServices; using AcadRun = Autodesk.AutoCAD.Runtime; private void button2_Click(object sender, System.EventArgs e) { object G_OBJ = null; ObjectId G_OBJID; Entity G_ENT = null; Line G_LINE = null; string G_ENTTYPE = "", s = "", es = ""; try { Microsoft.VisualBasic.Interaction.AppActivate(cadApp.Caption); // Here I am Getting the ERROR --> System.NullReferense Error Additional Info: Object Referense not set to an instance of object Database Db = HostApplicationServices.WorkingDatabase; Editor Ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; Transaction Trans = Db.TransactionManager.StartTransaction(); BlockTable bt = (BlockTable)Trans.GetObject(Db.BlockTableId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite); BlockTableRecord btr = (BlockTableRecord)Trans.GetObject(bt[BlockTableRecord.ModelSpace],Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite); PromptEntityResult p = Ed.GetEntity("click on an entity"); G_OBJ =(Object) p; G_OBJID = p.ObjectId; if(G_OBJID.ToString() != "(0)") { G_ENT = (Entity)Trans.GetObject(G_OBJID, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead); G_ENTTYPE = G_ENT.GetType().ToString(); if (G_ENTTYPE == "Autodesk.AutoCAD.DatabaseServices.Line") { G_LINE = (Line) G_ENT; Point3d p0 = G_LINE.StartPoint, p1 = G_LINE.EndPoint; double dX, dY, Len2D; dX = (p1.X - p0.X); dY = (p1.Y - p0.Y); Len2D = Math.Sqrt((dX * dX)+(dY * dY)); s += "\n Length (2D = " + Len2D + ") "; } else es += "\n Selected Object is not a Line"; } } catch(System.Exception EX){es += "\nErr.. in Get_Object : " + EX.Message.ToString();} MessageBox.Show(s); MessageBox.Show(es); }