参考了这个教程“Create Drawing”对话框设置 - 技术资料库 - Bentley 中国优先社区 - Bentley Communities
想不打开 Create Drawing 快速生成剖面图,录制的宏和VBA代码如下:
C#中用Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin调用keyin命令
public static MyModalDialogEvents Instance = new MyModalDialogEvents(); void BIM.IModalDialogEvents.OnDialogOpened(string DialogBoxName, ref BIM.MsdDialogBoxResult DialogResult) { if (DialogBoxName == "Create Drawing") { Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_COINCIDENTSHEET_OFF"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_ASSIGNSAVEDVIEWNAME 圆形井剖面" ); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_SET_DRAWINGBOUNDARY 1"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_COINCIDENTSHEET_OFF"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_SET_DISCIPLINE 建筑"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_SET_PURPOSE 剖面"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND DRAWCOMP_VISIBLEEDGES 1"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND DRAWCOMP_VISIBLEEDGES 1"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_ADDSHEETTOSHEETINDEX_OFF"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_COINCIDENTSHEET_OFF"); Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp.CadInputQueue.SendKeyin("MDL COMMAND CREATEDRAWING_OPENMODEL_ON"); //DialogResult = BIM.MsdDialogBoxResult.OK; } }
其中MDL COMMAND CREATEDRAWING_SET_DRAWINGBOUNDARY 1,是选择drawing boundary的,默认情况是 new,想选择为第二个选项,如下图
执行代码后,发现对话框上的Name成功更改了,但是drawing boundary没有按照代码的设置,想问以下有什么办法能够将Drawing Boundary 或者其他的选项也通过代码设置成自己想要的内容呢?