Revit二次开发之代码调试
Revit二次开发第④弹!...
点击上方“万间科技” 可以订阅哦!
在Revit二次开发第三弹的文章中,我们一起学习了构建Revit插件的C#代码内部的细节,理解了什么是类、对象、变量等C#语言基础知识。今天,我们要一起学习如何使用Visual Studio 对程序的执行进行跟踪和调试。
01
为什么要调试编写一个第一次就能完美运行的插件不是一件容易的事,就算我们的代码可以没有错误成功生成,仍然有可能因为程序逻辑的错误得到非预期的结果。我们把代码中的错误叫做bug,把程序投入实际运行前通过代码审查程序执行检测变量变化的过程称为调试(Debug)。
这是保证插件顺利和正确运行的必不可少的步骤。
02
调试准备附加进程
下一步,打开调试菜单,单击附加到进程(Ctrl+Alt+F5)。在弹出窗口的可用进程一栏选择Revit.exe,单击右下角的附加(A)。设置好之后,打开Hotel.rvt文件(第一课有下载链接)。
设置断点
在解决方案资源管理器中双击 Class1.cs以显示代码,单击下行中的任意位置:然后从调试菜单中选择切换断点(F9)。此时光标所在行将以红色突出显示,并在左侧出现一个圆圈,表示我们已经在此行设置了断点。同样地,为PickPoint方法设置断点:当 Revit 在代码中调用这些方法时,调试器将在断点处停止并等待我们下一步指令。
03
开始调试 现在是时候来调用我们的命令了。
在 Revit附加模块选项卡上,单击外部工具下拉列表,然后单击Ex_1PlaceGroup。这时将启动插件,Visual Studio将控制程序运行并成为前台应用程序。调试器现在停止在第一行断点处,此行代码用黄色突出显示并且在左侧有一个小小的黄色箭头。
这时,Visual Studio为我们提供了三种方式调试代码:逐语句、逐过程和跳出。在 Revit附加模块选项卡上,单击外部工具下拉列表,然后单击Ex_1PlaceGroup。这时将启动插件,Visual Studio将控制程序运行并成为前台应用程序。调试器现在停止在第一行断点处,此行代码用黄色突出显示并且在左侧有一个小小的黄色箭头。
本例中,我们使用逐过程,即在调试器中执行下一行代码 (黄色突出显示的行),然后移动到下一行。如果遇到一个方法,将方法当成一个语句,不进入到方法内部。除了在调试菜单中选择,工具栏上也有逐语句、逐过程和跳出三种方式的图标,也可使用相应的快捷键(F11、 F10和Shift + F11)。现在单击工具栏上的逐过程图标,调试器将移到下一行的代码 (忽略注释)。
将光标悬停在uiApp上,会出现显示变量值的工具提示。单击工具提示左侧的小三角可以查看各种属性并检查它们的值。
若要实时显示变量的值,可以右击该变量并选择添加监视。添加后左下角的监视窗口中将显示变量和它的值。
继续逐过程调试代码,鼠标悬停在变量值和属性上,看看它们是如何随着代码的执行进行变化。如果我们想停止逐行调试,按F5 可以继续到下一个断点——在本例中,被设置在selPickPoint()这一行。
单击F10,Revit 将成为前台应用程序,并提示选择要复制组的目标点。我们现在选择相邻房间的近似中心位置。选定点后,Visual Studio重新成为前台应用程序,调试器等待我们要检查所选点的值或继续逐行调试或单击F5直接跳转到下一个断点。此时,我们可以通过将光标悬停在点变量 (point)上 检查所选点的 XYZ 值。
现在单击F5,调试器执行剩余所有代码, Revit 成为前台应用程序,复制操作成功完成。
完成上述操作后,在调试菜单中选择停止调试关闭 Revit 并结束调试。看到这儿的小伙伴们已经成功GET如何在 Visual Studio里调试项目。
下次小编将带着大家学习更多精彩内容。
大家保持关注哦,欢迎转发分享!部分翻译改编自Autodesk提供的教程,原文链接:
http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=16849339
注意:原文教程基于Revit 2014和Microsoft Visual C#Express
关注 万间网
微信扫一扫关注公众号