.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Null Reference Thrown at Autodesk.AutoCAD.EditorInput.Editor.get_IsQuiescent()

1 REPLY 1
Reply
Message 1 of 2
calvindale
614 Views, 1 Reply

Null Reference Thrown at Autodesk.AutoCAD.EditorInput.Editor.get_IsQuiescent()

I have a simple method which checks and records the existence of table entities.

 

When the method exits (in a VS debug session and control returns to AutoCAD), AutoCAD throws this exception.

 

System.NullReferenceException: Object reference not set to an instance of an object.
   at Autodesk.AutoCAD.EditorInput.Editor.get_IsQuiescent()
   at Autodesk.AutoCAD.Ribbon.RibbonPaletteSet.AcadApplication_Idle(Object sender, EventArgs e)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at Autodesk.AutoCAD.ApplicationServices.Application.raise_Idle(Object value0, EventArgs value1)
   at Autodesk.AutoCAD.ApplicationServices.Application.OnIdle()

 

And it seems to endlessly throw it in an infinite loop.

 

Here's the method:

 

 

 

        [CommandMethod("HasTables")]
        public static void Update__Utility_AcadFixTablesLog_HasTables() {
            const string connectionString = @"......";
            using (var db = new ProductCatalogEntities(connectionString)) {
                using (var document = Application.DocumentManager.MdiActiveDocument) {
                    TypedValue[] typedValues = { new TypedValue((int)DxfCode.Start, "ACAD_TABLE") };
                    SelectionFilter selectionFilter = new SelectionFilter(typedValues);
                    var rec = db.AcadFixTablesLogs.FirstOrDefault(_ => String.Compare(_.FileName, document.Name, false) == 0);
                    var promptSelectionResult = document.Editor.SelectAll(selectionFilter);
                    var hasTablesResult = promptSelectionResult.Status == PromptStatus.None;
                    if (rec != null) {
                        rec.HasTables = hasTablesResult;
                        db.SaveChanges();
                    }
                }
            }
        }

 

 

 

 

Any ideas?  Thanks!

1 REPLY 1
Message 2 of 2
HomeBoyLV
in reply to: calvindale

Are you calling this routine directly from your pallett? Sounds like you are call this from the "ApplicationContext". Try using SendStringToExec to force it into "DocumentContext" and see if that fixes it.

 

HomeBoy Out

 

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


Autodesk Design & Make Report

”Boost