I am creating an AutoCAD plugin that gathers information from the current drawing and the user, inserts a block, selects an area of the drawing, creates a new drawing and copies the selected items to the new drawing. The problem is that I need to use a function similar to zoomextents on the new drawing, which seems to conflict with the other operations I need to perform.
I found a proposed solution that suggested adding a Session flag to the CommandMethod, but that caused another error, earlier in execution when the drawing-specific functionality . Is there any way to get all of this functionality to work with one CommandMethod? The errors messages I received are:
w/out session flag: "Invalid execution context"
w/ session flag "eLockViolation"
Thank you in advance for your answers.
In reguards to the eLockViolation
You need to lock the drawing first.
Use both the Session flag (to fix the Invalid Execution Context) and a Document Lock (to fix the eLockViolation).
Once you apply the Session flag to a command, you are then responsible for making sure the appropriate documents are locked.
I fixed all of the lock errors and have the Session flag in the CommandMethod, but I'm getting the invalid exectution context error again. It happens when the code tries to open the newly created document.
Unfortunately I am not able to include all of the code, but the code that is not functioning properly is in forum code.txt in the secondfunction (createDriveFile). The line where the code fails is marked with a comment. It is the line where the file should be opened.
This line does not look correct (Dim newDWG = Application.DocumentManager.Open(filePath, False)).
My guess is you intended newdwg to be an ApplicationServices.Document. Try this:
Dim newDWG as ApplicationServices.Document = Application.DocumentManager.Open(filePath, False).
I tried the more specific declaration, but the problem seems to be with the open command being called here, although it is called from session mode. I got the exact same error with this change.
Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register