{"id":261872,"date":"2015-07-20T14:39:02","date_gmt":"2015-07-20T10:39:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=261872"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=261872","title":{"rendered":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f AutoCAD \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e .NET API (\u0447\u0430\u0441\u0442\u044c 5 \u2013 \u043f\u043e\u0438\u0441\u043a \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435)"},"content":{"rendered":"<p>     \t\u042d\u0442\u043e \u0448\u0435\u0441\u0442\u0430\u044f \u0447\u0430\u0441\u0442\u044c <a href=\"http:\/\/habrahabr.ru\/post\/235723\/\"><u>\u0446\u0438\u043a\u043b\u0430<\/u><\/a> \u043f\u0440\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f AutoCAD. \u0412 \u043d\u0435\u0439 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435.<\/p>\n<pre><code>public static string disclaimer = &quot;\u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0438 \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 AutoCAD. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.&quot;; <\/code><\/pre>\n<p><a name=\"habracut\"><\/a><\/p>\n<h1>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043a\u0430\u0440\u043a\u0430\u0441 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u043c, \u043d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u043c. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u00ablayer-1\u00bb \u0438 \u00ablayer-2\u00bb (\u0438\u0442\u043e\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0441\u0442\u044c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0435\u0440\u0442\u0435\u0436\u0435, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u0440\u0438 \u0441\u043b\u043e\u044f). \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u00abblock-1\u00bb (\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u043d\u0438\u0438 \u0438 \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u0438) \u0438 \u00abblock-2\u00bb (\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u0432\u0443\u0445 \u043b\u0438\u043d\u0438\u0439). \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:  <\/p>\n<ul>\n<li>\u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0441\u043b\u043e\u0439: \u0442\u0440\u0438 \u043b\u0438\u043d\u0438\u0438, \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u0442\u0435\u043a\u0441\u0442;<\/li>\n<li>\u043d\u0430 \u0441\u043b\u043e\u0439 \u00ablayer-1\u00bb: \u0434\u0432\u0435 \u043b\u0438\u043d\u0438\u0438, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u0442\u0435\u043a\u0441\u0442, \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u00abblock-1\u00bb;<\/li>\n<li>\u043d\u0430 \u0441\u043b\u043e\u0439 \u00ablayer-2\u00bb: \u043b\u0438\u043d\u0438\u044e, \u0434\u0443\u0433\u0443, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u00abblock-1\u00bb, \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u00abblock-2\u00bb.<\/li>\n<\/ul>\n<p>  \u041d\u0443 \u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0441\u0447\u0430\u0441\u0442\u044c\u044f \u043c\u044b \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u0438\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0432 \u0440\u043e\u0437\u043e\u0432\u044b\u0439, \u0433\u043e\u043b\u0443\u0431\u043e\u0439 \u0438 \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0439 \u0446\u0432\u0435\u0442\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u044b\u0431\u043e\u0440 \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432 \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043a \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u2014 \u0442\u043e\u0441\u043a\u0430 \u0441\u043c\u0435\u0440\u0442\u043d\u0430\u044f, \u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0436\u0438\u0432\u0438\u0442\u044c.<br \/>  \u0420\u0430\u0441\u043a\u0440\u0430\u0441\u0438\u0432 \u043f\u0435\u0440\u0432\u044b\u0435 \u043b\u0438\u043d\u0438\u0438, \u044f \u0432\u0434\u0440\u0443\u0433 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043b \u043f\u0440\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D0%B4%D1%83%D0%B6%D0%BD%D1%8B%D0%B9_%D1%84%D0%BB%D0%B0%D0%B3\"><u>\u0420\u0430\u0434\u0443\u0436\u043d\u044b\u0439 \u0444\u043b\u0430\u0433<\/u><\/a> \u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u0434\u0430\u0436\u0435, \u043d\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043b\u0438 \u0435\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u044e\u2026<br \/>  \u041d\u043e \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044f \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e \u044d\u0442\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435, \u0430 \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0444\u043b\u0430\u0433 \u2014 \u044d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0442\u0440\u0435\u0445 \u043b\u0438\u043d\u0435\u0435\u043a. \u041d\u0443 \u0435\u0433\u043e \u043d\u0430\u0444\u0438\u0433.  <\/div>\n<\/div>\n<p>  \u041a\u043e\u0434, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u043e\u0442 \u043f\u043b\u0430\u043d \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u0434\u0430\u043b\u0435\u0435. \u0412\u0441\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0435\u0432 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430, \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430, \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0438 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 \u2014 \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0446\u0438\u043a\u043b\u0430. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u043e\u0441\u044c, \u2014 \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u044f \u0438 \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0430, \u043d\u043e \u043e\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u0430 \u0438, \u044f \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0435 \u0432\u044b\u0437\u043e\u0432\u0435\u0442.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u044e .NET, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c <code>CopyLocal<\/code>) \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <b>AcMgd<\/b> \u0438 <b>AcDbMgd<\/b>. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0442\u0443\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>using System; using System.Collections.Generic;  using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.EditorInput; using acad = Autodesk.AutoCAD.ApplicationServices.Application;  namespace HabrPlug_SearchAndRescue {     public class ClassMyAutoCADDLL_SearchAndRescue     {         public class Commands : IExtensionApplication         {             \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0446\u0432\u0435\u0442\u0430             Autodesk.AutoCAD.Colors.Color color_Pink = Autodesk.AutoCAD.Colors.Color.FromRgb(255, 128, 255);             Autodesk.AutoCAD.Colors.Color color_Blue = Autodesk.AutoCAD.Colors.Color.FromRgb(0, 200, 255);             Autodesk.AutoCAD.Colors.Color color_LightGreen = Autodesk.AutoCAD.Colors.Color.FromRgb(128, 255, 64);              \/\/ ID \u0441\u043b\u043e\u0435\u0432 &quot;layer-1&quot; \u0438 &quot;layer-2&quot;             ObjectId layer_1;             ObjectId layer_2;              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u043e\u0438             public void createLayers()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;                 Database acCurDb = acDoc.Database;                  \/\/ \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442                 using (DocumentLock docloc = acDoc.LockDocument())                 {                     \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     using (Transaction tr = acCurDb.TransactionManager.StartTransaction())                     {                         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043b\u043e\u0435\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                         LayerTable acLyrTbl = tr.GetObject(acCurDb.LayerTableId, OpenMode.ForWrite) as LayerTable;                          \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                         LayerTableRecord acLyrTblRec_1 = new LayerTableRecord();                         acLyrTblRec_1.Name = &quot;layer-1&quot;;                         \/\/ \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043b\u043e\u0435\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c ID \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043b\u043e\u044f                         layer_1 = acLyrTbl.Add(acLyrTblRec_1);                         \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442                         tr.AddNewlyCreatedDBObject(acLyrTblRec_1, true);                           \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                         LayerTableRecord acLyrTblRec_2 = new LayerTableRecord();                         acLyrTblRec_2.Name = &quot;layer-2&quot;;                         \/\/ \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043b\u043e\u0435\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c ID \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043b\u043e\u044f                         layer_2 = acLyrTbl.Add(acLyrTblRec_2);                         \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442                         tr.AddNewlyCreatedDBObject(acLyrTblRec_2, true);                          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                         tr.Commit();                     }                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot;             public void createBlock_1()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u0438\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430                 const string blockName = &quot;block-1&quot;;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 Transaction tr = db.TransactionManager.StartTransaction();                 using (tr)                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite);                      \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435\u0442 \u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c; \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c - \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b                     if (bt.Has(blockName))                     {                         return;                     }                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                     BlockTableRecord btr = new BlockTableRecord();                     btr.Name = blockName;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     bt.Add(btr);                     tr.AddNewlyCreatedDBObject(btr, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0431\u043b\u043e\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = Point3d.Origin;                     acCircle.Radius = 25;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043b\u0438\u043d\u0438\u044e                     Line acLine = new Line(new Point3d(18, 18, 0), new Point3d(35, 35, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acLine);                     tr.AddNewlyCreatedDBObject(acLine, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e                     Polyline acPolyline = new Polyline();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acPolyline.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b                     acPolyline.AddVertexAt(0, new Point2d(20, 35), 0, 0, 0);                     acPolyline.AddVertexAt(1, new Point2d(35, 35), 0, 0, 0);                     acPolyline.AddVertexAt(2, new Point2d(35, 20), 0, 0, 0);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acPolyline);                     tr.AddNewlyCreatedDBObject(acPolyline, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-2&quot;             public void createBlock_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u0438\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430                 const string blockName = &quot;block-2&quot;;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 Transaction tr = db.TransactionManager.StartTransaction();                 using (tr)                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite);                      \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435\u0442 \u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c; \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c - \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b                     if (bt.Has(blockName))                     {                         return;                     }                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                     BlockTableRecord btr = new BlockTableRecord();                     btr.Name = blockName;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     bt.Add(btr);                     tr.AddNewlyCreatedDBObject(btr, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0431\u043b\u043e\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = Point3d.Origin;                     acCircle.Radius = 25;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(0, -25, 0), new Point3d(0, -50, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_1.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_2 = new Line(new Point3d(-7, -39, 0), new Point3d(7, -39, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_2.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acLine_2);                     tr.AddNewlyCreatedDBObject(acLine_2, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0435             public void layer_0_createObjects()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = acad.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(225, 225, 0), new Point3d(225, 175, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_1.SetDatabaseDefaults();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acLine_1.Layer = &quot;0&quot;;                     acLine_1.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_2 = new Line(new Point3d(250, 225, 0), new Point3d(250, 175, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_2.SetDatabaseDefaults();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acLine_2.Layer = &quot;0&quot;;                     acLine_2.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_2);                     tr.AddNewlyCreatedDBObject(acLine_2, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_3 = new Line(new Point3d(275, 225, 0), new Point3d(275, 175, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_3.SetDatabaseDefaults();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acLine_3.Layer = &quot;0&quot;;                     acLine_3.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_3);                     tr.AddNewlyCreatedDBObject(acLine_3, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e                     Polyline acPolyline = new Polyline();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acPolyline.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b                     acPolyline.AddVertexAt(0, new Point2d(300, 225), 0, 0, 0);                     acPolyline.AddVertexAt(1, new Point2d(325, 175), 0, 0, 0);                     acPolyline.AddVertexAt(2, new Point2d(350, 225), 0, 0, 0);                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acPolyline.Layer = &quot;0&quot;;                     acPolyline.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acPolyline);                     tr.AddNewlyCreatedDBObject(acPolyline, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = new Point3d(400, 200, 0);                     acCircle.Radius = 25;                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acCircle.Layer = &quot;0&quot;;                     acCircle.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442                     DBText text = new DBText();                     text.Position = new Point3d(450, 175, 0);                     text.Height = 50;                     text.TextString = &quot;HABR!&quot;;                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     text.Layer = &quot;0&quot;;                     text.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(text);                     tr.AddNewlyCreatedDBObject(text, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043b\u043e\u0435 &quot;layer-1&quot;             public void layer_1_createObjects()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = acad.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c                     \/\/ (\u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430)                     ObjectId currentLayer = db.Clayer;                     db.Clayer = layer_1;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(225, 25, 0), new Point3d(225, -25, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acLine_1.SetDatabaseDefaults();                     acLine_1.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_2 = new Line(new Point3d(250, 25, 0), new Point3d(250, -25, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acLine_2.SetDatabaseDefaults();                     acLine_2.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_2);                     tr.AddNewlyCreatedDBObject(acLine_2, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = new Point3d(300, 0, 0);                     acCircle.Radius = 25;                     acCircle.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442                     DBText text = new DBText();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     text.Position = new Point3d(350, -25, 0);                     text.Height = 50;                     text.TextString = &quot;HABR!&quot;;                     text.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(text);                     tr.AddNewlyCreatedDBObject(text, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot;                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c ObjectID \u0431\u043b\u043e\u043a\u0430                     ObjectId btrId = bt[&quot;block-1&quot;];                     \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430                     BlockReference br = new BlockReference(new Point3d(600, 0, 0), btrId);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(br);                     tr.AddNewlyCreatedDBObject(br, true);                      \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439                     db.Clayer = currentLayer;                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043b\u043e\u0435 &quot;layer-2&quot;             public void layer_2_createObjects()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = acad.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c                     \/\/ (\u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430)                     ObjectId currentLayer = db.Clayer;                     db.Clayer = layer_2;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(225, -175, 0), new Point3d(225, -225, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acLine_1.SetDatabaseDefaults();                     acLine_1.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u0434\u0443\u0433\u0443                     Arc acArc = new Arc(new Point3d(250, -200, 0), 25, -45 \/ 180.0 * Math.PI, 45 \/ 180.0 * Math.PI);                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acArc.SetDatabaseDefaults();                     acArc.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acArc);                     tr.AddNewlyCreatedDBObject(acArc, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = new Point3d(325, -200, 0);                     acCircle.Radius = 25;                     acCircle.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot;                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c ObjectID \u0431\u043b\u043e\u043a\u0430                     ObjectId btrId = bt[&quot;block-1&quot;];                     \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430                     BlockReference br = new BlockReference(new Point3d(400, -200, 0), btrId);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(br);                     tr.AddNewlyCreatedDBObject(br, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-2&quot;                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c ObjectID \u0431\u043b\u043e\u043a\u0430                     btrId = bt[&quot;block-2&quot;];                     \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430                     br = new BlockReference(new Point3d(475, -200, 0), btrId);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(br);                     tr.AddNewlyCreatedDBObject(br, true);                      \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439                     db.Clayer = currentLayer;                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430             public void Initialize()             {                 createLayers();                 createBlock_1();                 createBlock_2();                 layer_0_createObjects();                 layer_1_createObjects();                 layer_2_createObjects();             }              \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f Terminate() \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 IExtensionApplication             public void Terminate()             {              }         }     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/432\/a88\/f3f\/432a88f3f1e445999a047712dc7ab180.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u041a\u043e\u0434 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u044e\u0430\u043d\u0441\u0430\u043c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0432\u044b\u0439: \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 Initialize()<\/b><\/p>\n<div class=\"spoiler_text\">\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043f\u0440\u044f\u043c\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0443\u0436\u043d\u044b \u043d\u0430\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434 \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u0438\u0445 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u0430 <code>Initialize()<\/code>.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u0440\u0430\u0437\u0443\u043c\u043d\u043e \u2014 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0447\u0435\u043d\u044c \u0441\u043f\u043e\u0440\u043d\u044b\u0439. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0447\u0442\u043e-\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043c\u044b \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043b\u0438\u0448\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u0435\u0441\u0435\u043b\u044b\u043c \u0444\u0430\u043a\u0442\u043e\u043c: \u043f\u0440\u0438\u0432\u0435\u0442, \u0447\u0443\u0432\u0430\u043a, \u0443 \u0442\u0435\u0431\u044f \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0441\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0445 \u0441\u043b\u043e\u0435\u0432 \u0438 \u0441\u0442\u043e \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432!<\/p>\n<p>  \u0412\u0435\u0441\u0435\u043b\u043e \u0431\u0443\u0434\u0435\u0442, \u043d\u043e \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u043b\u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0418 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u043e\u0432\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b; \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u043c\u0443 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c AutoCAD.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043d\u0430\u0434\u043e \u0431\u044b\u0442\u044c \u00ab\u043d\u0435\u0436\u043d\u0435\u0435, \u0435\u0449\u0435 \u043d\u0435\u0436\u043d\u0435\u0435\u00bb (\u0441). \u0428\u0443\u0442\u043a\u0438 \u0441 \u044d\u0442\u0438\u043c \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b \u0432 \u0443\u0447\u0435\u0431\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441\u0442\u043e\u0438\u0442 \u0442\u0440\u0438\u0436\u0434\u044b \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>Initialize()<\/code>. \u0412 \u0438\u0434\u0435\u0430\u043b\u0435 \u0437\u0434\u0435\u0441\u044c \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <s>\u0431\u0435\u0442\u043e\u043d \u0438 \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/s> \u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435:  <\/p>\n<ol>\n<li>\u041d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0438 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0443\u0442 \u0438\u0437\u043b\u0438\u0448\u043d\u044e\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436.<\/li>\n<li>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 (\u043b\u0438\u0431\u043e \u0436\u0435 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u044d\u0442\u043e\u0442 \u0432\u044b\u0437\u043e\u0432 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0430\u0431\u0437\u0430\u0446\u0430 \u0432\u044b\u0448\u0435 \u043f\u0440\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0430).<\/li>\n<\/ol>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u0435\u0439\u0447\u0430\u0441 \u0441 \u0441\u043e\u0434\u0440\u043e\u0433\u0430\u043d\u0438\u0435\u043c \u0437\u0430\u0448\u0435\u043b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u043a\u043e\u0434\u043e\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0437\u0430\u0436\u043c\u0443\u0440\u0438\u043b\u0441\u044f, \u043e\u0442\u043a\u0440\u044b\u043b \u0433\u043b\u0430\u0437\u0430\u2026<br \/>  \u0423\u0444, \u0432\u0441\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u0418\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 <i>\u043f\u043e\u0447\u0442\u0438<\/i> \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u044b.<br \/>  \u2026<br \/>  \u041a\u0430\u043a \u0442\u0430\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f-\u0442\u043e? \u00ab\u041a\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u2014 \u0443\u0447\u0438\u0442\u00bb?  <\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u043c\u0435\u043d\u0442 \u0432\u0442\u043e\u0440\u043e\u0439: \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0440\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f (\u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>layer_0_createObjects()<\/code>) \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u043a \u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u043e\u044e \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code>acLine_1.Layer = &quot;0&quot;;<\/code><\/pre>\n<p>  \u042d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u043b\u043e\u0439, \u0447\u0442\u043e \u043d\u0435\u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043b \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>layer_1_createObjects()<\/code> \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u043b\u0438\u043d\u0438\u0438 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>layer_0_createObjects()<\/code>, \u0437\u0430\u0431\u044b\u0432 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043b\u043e\u0439 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439. \u041f\u043e\u0438\u0441\u043a\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0435\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u044f\u043b\u0438 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f. \u041e\u0441\u043e\u0437\u043d\u0430\u0432, \u0447\u0442\u043e \u0442\u0430\u043a \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0430\u043c\u0438, \u0430\u0432\u0442\u043e\u0440 \u0432\u044b\u0431\u0435\u0441\u0438\u043b\u0441\u044f \u0438 \u0440\u0435\u0448\u0438\u043b \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c.<br \/>  \u0422\u0430\u043a \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u044d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438.)  <\/div>\n<\/div>\n<p>  \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0449\u0438\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438, \u0431\u044b\u043b \u043a\u0440\u0430\u0442\u043a\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0439 \u0441\u043b\u043e\u044f\u043c. \u042d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Clayer<\/code>.<\/p>\n<p>  \u0421\u0443\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0443\u043a\u0430\u0436\u0435\u043c \u0435\u043c\u0443 \u0441\u043b\u043e\u0439, \u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Clayer<\/code> \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>Document doc = acad.DocumentManager.MdiActiveDocument; Database db = doc.Database; ObjectId currentLayer = db.Clayer; <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e:<\/p>\n<pre><code>Document doc = acad.DocumentManager.MdiActiveDocument; Database db = doc.Database; db.Clayer = layer_1; \/\/ layer_1 - ObjectID \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f <\/code><\/pre>\n<p>  \u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <code>ObjectID<\/code> \u0441\u043b\u043e\u044f, \u0437\u043d\u0430\u044f \u0435\u0433\u043e \u0438\u043c\u044f:<\/p>\n<pre><code>Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; using (DocumentLock docloc = acDoc.LockDocument()) {     using (Transaction tr = acCurDb.TransactionManager.StartTransaction())     {         LayerTable acLyrTbl = tr.GetObject(acCurDb.LayerTableId, OpenMode.ForWrite) as LayerTable;         ObjectId layer_objID = acLyrTbl[&quot;someLayer&quot;]     } } <\/code><\/pre>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043b\u043e\u0435\u0432, \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u0434\u0432\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u2014 <code>layer_1<\/code> \u0438 <code>layer_2<\/code>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e <code>ObjectID<\/code> \u0441\u043b\u043e\u0435\u0432 \u00ablayer-1\u00bb \u0438 \u00ablayer-2\u00bb \u043f\u0440\u0438 \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438. \u0410 \u043f\u043e\u0437\u0436\u0435, \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 <code>layer_1_createObjects()<\/code> \u0438 <code>layer_2_createObjects()<\/code>, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e:<\/p>\n<pre><code>\/\/ ... ObjectId currentLayer = db.Clayer; db.Clayer = layer_1; \/\/ ... \/\/ \u0414\u041e\u0411\u0410\u0412\u041b\u042f\u0415\u041c \u041d\u041e\u0412\u042b\u0415 \u041e\u0411\u042a\u0415\u041a\u0422\u042b \/\/ ... db.Clayer = currentLayer; \/\/ ... <\/code><\/pre>\n<p>  \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>Clayer<\/code> \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438?<br \/>  \u041d\u0443, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d \u2014 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043c\u043e\u0433 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u0441\u043b\u043e\u0439, \u0447\u0442\u043e \u0438 \u0434\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b.<br \/>  \u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u2014 \u0447\u0442\u043e\u0431\u044b \u0441\u0430\u043c\u043e\u043c\u0443 \u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0438 \u043d\u0435 \u0432\u044b\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0442\u0443\u0434\u0430.<br \/>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0435\u043c\u043e\u0433\u043e \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0442\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0438 \u0435\u0449\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b. \u041d\u043e \u0437\u0430\u0447\u0435\u043c?  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u043c\u0435\u043d\u0442 \u0442\u0440\u0435\u0442\u0438\u0439: \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9aa\/8d2\/d19\/9aa8d2d19a2c40aaaffe5c36b57d2538.jpg\"\/><br \/>  <i>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: \u00ab<a href=\"http:\/\/rivelty.ru\/portfolio\/instruktag-po-ohrane-truda-i-promishlennoy-bezopasnosti\/\"><u>\u0420\u0438\u0432\u0435\u043b\u0442\u0438 \u0433\u0440\u0443\u043f\u043f<\/u><\/a>\u00bb<\/i><\/p>\n<p>  \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0435\u0449\u0435 \u0440\u0430\u0437 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043a\u0446\u0435\u043d\u0442 \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0431 <u>\u043e\u0441\u043d\u043e\u0432\u0430\u0445<\/u> \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b \u2014 \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u0441\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435: \u044f \u043f\u043e\u043c\u0435\u0449\u0430\u044e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043d\u0435\u0435 \u0441\u043b\u043e\u0438, \u043f\u043e\u043c\u0435\u0449\u0430\u044e \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u2014 \u043d\u043e \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u0447\u0442\u043e \u044d\u0442\u0438 \u0441\u043b\u043e\u0438 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u043d\u0430\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0430, \u044f \u043e\u043f\u0438\u0448\u0443 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c.  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u043e\u0438\u0441\u043a\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435. \u041c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430: \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 <code>ModelSpace<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <code>Editor.SelectAll()<\/code>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041d\u043e \u0442\u0443\u0442 \u044f \u0443\u0436\u0435 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0443, \u0438\u0431\u043e \u043b\u0438\u0447\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u043d\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f.<\/p>\n<p>  \u0411\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043c\u0430-\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0431\u043e\u043d\u0443\u0441\u043d\u044b\u0439 \u043d\u0430\u043d\u043e\u0440\u0430\u0437\u0434\u0435\u043b, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b <s>\u0438\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0439<\/s> \u0431\u043b\u0435\u0441\u0442\u044f\u0449\u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <s>\u043b\u044e\u0434\u044f\u043c<\/s> \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>1 \u041f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 <code>ModelSpace<\/code><\/h1>\n<p>  <\/p>\n<h2>1.1 \u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0447\u0435\u0440\u0442\u0435\u0436\u0430<\/h2>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432 \u0446\u0438\u043a\u043b\u0435 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435.<\/p>\n<p>  \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043f\u0440\u043e\u0441\u0442\u043e\u0439: \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (<code>ModelSpace<\/code>) \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e. \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u044d\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043a \u0442\u0438\u043f\u0443 <code>Entity<\/code> \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 <s>\u043f\u043e\u0447\u0442\u0438<\/s> \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d <a href=\"http:\/\/spiderinnet1.typepad.com\/blog\/2012\/06\/autocad-net-iterate-through-model-space.html\"><u>\u043e\u0442\u0441\u044e\u0434\u0430<\/u><\/a> (\u0430\u043d\u0433\u043b.).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_IterateThroughAllObjects_1&quot;)] public void iterateThroughAllObjects() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414      Database db = HostApplicationServices.WorkingDatabase;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)         BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);          \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438         foreach (ObjectId id in ms)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                     \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439 (entity.Layer), \u0442\u0438\u043f (entity.GetType().ToString()) \u0438 \u0446\u0432\u0435\u0442 (entity.Color) \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430             acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                 entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0fe\/86c\/158\/0fe86c158e71444387698f1f6402e8ed.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c\u0438: \u0443 \u043d\u0430\u0441 16 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0446\u0432\u0435\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0435\u0440\u0435\u0434\u0443\u044e\u0442\u0441\u044f.<\/p>\n<p>  \u0418\u0437 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432: \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0435 \u043d\u0430\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>WorkingDatabase<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>HostApplicationServices<\/code>. \u041e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0411\u0414 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u043a\u0442\u0438\u0432\u0435\u043d (\u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u043a\u0443\u0441 \u0432\u0432\u043e\u0434\u0430) \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u043e \u2014 \u043c\u0435\u0442\u043e\u0434 <code>GetBlockModelSpaceId()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>SymbolUtilityServices<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <code>ObjectId<\/code> \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 (<code>ModelSpace<\/code>).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0432\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043c\u044b, \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>\/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c (\u043f\u043e\u0434\u0445\u043e\u0434 1) [CommandMethod(&quot;Habr_IterateThroughAllObjects_1&quot;)] public void iterateThroughAllObjects() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document doc = acad.DocumentManager.MdiActiveDocument;     Database db = doc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438         foreach (ObjectId id in ms)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);             \t\t\/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439 (entity.Layer), \u0442\u0438\u043f (entity.GetType().ToString()) \u0438 \u0446\u0432\u0435\u0442 (entity.Color) \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430             acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                 entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));         }          tr.Commit();     } } <\/code><\/pre>\n<p>  \u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b.  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0421 \u043a\u0440\u0430\u0442\u043a\u043e\u0439 \u0445\u0432\u0430\u043b\u0435\u0431\u043d\u043e\u0439 \u043e\u0434\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0443 <code>SymbolUtilityServices<\/code> \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"http:\/\/adndevblog.typepad.com\/autocad\/2012\/04\/did-you-know-about-this-utility-class.html\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a> (\u0430\u043d\u0433\u043b.).  <\/div>\n<\/div>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c, \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0438\u0445 \u043a \u0442\u0438\u043f\u0443 <code>Entity<\/code> (\u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430) \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u043b\u043e\u0435, \u0442\u0438\u043f\u0435 \u0438 \u0446\u0432\u0435\u0442\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/p>\n<h2>1.2 \u041f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430.<\/p>\n<p>  \u0414\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0442\u0430\u043a: \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0447\u0435\u0440\u0442\u0435\u0436\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0442\u0438\u043f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430; \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430\u043c \u0443\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0430\u0441\u044c <a href=\"http:\/\/spiderinnet1.typepad.com\/blog\/2015\/02\/various-ways-in-vbnet-to-check-object-types-of-autocad-net.html\"><u>\u0441\u0441\u044b\u043b\u043a\u0430<\/u><\/a> (\u0430\u043d\u0433\u043b.), \u0433\u0434\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u044f\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043e\u0442 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432:<\/p>\n<pre><code>if (entity.GetType() == typeof(Circle)) \/\/ \u0435\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u0435\u0440\u043d\u043e - \u0437\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_FindCircles_1&quot;)] public void findCircles_1() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414     Database db = HostApplicationServices.WorkingDatabase;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)         BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);          \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438         foreach (ObjectId id in ms)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c - \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430              if (entity.GetType() == typeof(Circle))             { \t            acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;, \t                entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));             }         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8b6\/cc6\/f0f\/8b6cc6f0f0144b74b845ca4b622030c0.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438:<\/p>\n<pre><code>if (entity.GetType() == typeof(Line)) <\/code><\/pre>\n<p>  \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 (\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b):<\/p>\n<pre><code>if (entity.GetType() == typeof(DBText)) <\/code><\/pre>\n<p>  \u0412\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432:<\/p>\n<pre><code>if (entity.GetType() == typeof(BlockReference)) <\/code><\/pre>\n<p>  \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p>  \u0410 \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043f\u043e\u0434\u0437\u0430\u0431\u0443\u0434\u0435\u0442\u0435, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u2014 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u2014 \u043e\u043d \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c AutoCAD. <\/p>\n<h2>1.3 \u041f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438<\/h2>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0438\u043f\u0430 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0446\u0432\u0435\u0442. \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/p>\n<p>  \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e: \u0441\u0442\u0440\u043e\u043a\u0443<\/p>\n<pre><code>if (entity.GetType() == typeof(Circle)) <\/code><\/pre>\n<p>  \u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430<\/p>\n<pre><code>if (entity.Color == Autodesk.AutoCAD.Colors.Color.FromRgb(128, 255, 64)) <\/code><\/pre>\n<p>  \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f.)<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>\/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043f\u043e\u0434\u0445\u043e\u0434 1) [CommandMethod(&quot;Habr_FindLightGreenObjects_1&quot;)] public void findLightGreenObjects_1() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414     Database db = HostApplicationServices.WorkingDatabase;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)         BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);          \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438         foreach (ObjectId id in ms)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u0435\u0441\u043b\u0438 \u0446\u0432\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0439, \u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430             if (entity.Color == Autodesk.AutoCAD.Colors.Color.FromRgb(128, 255, 64))             {                 acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                     entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));             }         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/818\/a58\/b31\/818a58b3134f4c3988390df61b8400ab.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0438 \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0441\u043b\u043e\u044e:<\/p>\n<pre><code>if (entity.Layer == &quot;0&quot;) <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u0430\u043c \u044f \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u043b. \u0421\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 Visual Studio \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0431\u0440\u0430\u0442\u044c &quot;<code>Entity test; test.<\/code>&quot; \u2014 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e IntelliSense \u0432\u044b\u0441\u0432\u0435\u0442\u0438\u0442 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 Entity:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d42\/427\/55d\/d4242755da5e4a6e996b874d73723789.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u041a\u043b\u0430\u0441\u0441 <code>Entity<\/code> \u0437\u0430\u0434\u0430\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0435 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0430: \u0441\u043b\u043e\u0439, \u0446\u0432\u0435\u0442 \u0438 \u0442. \u043f. \u0415\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u043c \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u00abblock-1\u00bb. \u041a\u043b\u0430\u0441\u0441 <code>Entity<\/code> \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043e\u0431 \u0438\u043c\u0435\u043d\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430; \u0437\u0430\u0442\u043e \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0435\u0441\u0442\u044c \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 <code>Name<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>BlockReference<\/code>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_FindBlocks_1&quot;)] public void findBlocks_1() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414     Database db = HostApplicationServices.WorkingDatabase;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)         BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);          \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438         foreach (ObjectId id in ms)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0431\u043b\u043e\u043a\u0430             if (entity.GetType() == typeof(BlockReference))             {                 \/\/ \u0435\u0441\u043b\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f - \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u043a \u0442\u0438\u043f\u0443 BlockReference                 BlockReference br = (BlockReference)entity;                  \/\/ \u0435\u0441\u043b\u0438 \u0438\u043c\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 - &quot;block-1&quot;, \u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                 if (br.Name == &quot;block-1&quot;)                 {                     acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                         entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                 }             }         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041c\u044b \u043d\u0430\u0439\u0434\u0435\u043c \u0434\u0432\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u00abblock-1\u00bb.<\/p>\n<h1>2 \u041f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <code>Editor.SelectAll()<\/code><\/h1>\n<p>  <\/p>\n<h2>2.1 \u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0447\u0435\u0440\u0442\u0435\u0436\u0430<\/h2>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438: \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u0432 <a href=\"http:\/\/through-the-interface.typepad.com\/through_the_interface\/2008\/05\/finding-all-the.html\"><u>\u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0442\u0430\u0442\u0435\u0439<\/u><\/a> Kean Walmsley (\u0430\u043d\u0433\u043b.). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 <a href=\"http:\/\/adndevblog.typepad.com\/autocad\/2012\/06\/editorselectall-with-entity-and-layer-selection-filter.html\"><u>AutoCAD DevBlog<\/u><\/a> (\u0430\u043d\u0433\u043b.) \u0438 <a href=\"http:\/\/adn-cis.org\/editor.selectall-s-filtrom-vyibora-primitivov-i-sloyov.html\"><u>\u0444\u043e\u0440\u0443\u043c\u0435 \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 Autodesk \u0432 \u0421\u041d\u0413<\/u><\/a> (rus).<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043c\u044b \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f: \u043c\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u044f \u043d\u0443\u0436\u043d\u044b\u0435.<\/p>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>\/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c (\u043f\u043e\u0434\u0445\u043e\u0434 2) [CommandMethod(&quot;Habr_IterateThroughAllObjects_2&quot;)] public void iterateThroughAllObjects_2() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430     Document doc = Application.DocumentManager.MdiActiveDocument;     Database db = doc.Database;     Editor ed = doc.Editor;      \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b     \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!     PromptSelectionResult selRes = ed.SelectAll();      \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439     if (selRes.Status != PromptStatus.OK)     {         ed.WriteMessage(&quot;\\nError!\\n&quot;);         return;     }      \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432     ObjectId[] ids = selRes.Value.GetObjectIds();      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c         foreach (ObjectId id in ids)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439 (entity.Layer), \u0442\u0438\u043f (entity.GetType().ToString()) \u0438 \u0446\u0432\u0435\u0442 (entity.Color) \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430             acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                 entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4ea\/265\/f83\/4ea265f8304d46d29a8cd1238781c0c8.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u041c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <code>Editor.SelectAll()<\/code>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u043d\u0430\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b (<code>ObjectID<\/code>) \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435. \u041e\u043d\u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0438\u043f\u0430 <code>PromptSelectionResult<\/code>. \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u2014 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 (<code>PromptSelectionResult.Status<\/code>). \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043e\u0442 <code>PromptStatus.OK<\/code> \u2014 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 <code>Editor.SelectAll()<\/code> \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0445 \u044d\u0442\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <code>PromptSelectionResult.Value.GetObjectIds()<\/code>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u0446\u0438\u043a\u043b\u0435 \u2014 \u0442\u043e\u0447\u044c-\u0432-\u0442\u043e\u0447\u044c \u043a\u0430\u043a \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u043b\u0438\u0441\u044c \u043a <code>ModelSpace<\/code>.<\/p>\n<p>  <b><u>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<\/u>!<\/b> \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0432\u043e\u0435\u043c\u0443 <a href=\"http:\/\/docs.autodesk.com\/ACD\/2011\/FRA\/filesMDG\/WS1a9193826455f5ff-3859b43c1209703a838778b.htm\"><u>\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e<\/u><\/a> (\u0430\u043d\u0433\u043b.), \u043c\u0435\u0442\u043e\u0434 <code>Editor.SelectAll()<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043b\u043e\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u041d\u0415 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 (<i>locked<\/i>) \u0438\u043b\u0438 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 (<i>frozen<\/i>). \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043f\u043e\u0445\u043e\u0436\u0435, \u043f\u0440\u0438\u0432\u0438\u0440\u0430\u0435\u0442: <code>Editor.SelectAll()<\/code> \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <i>\u0432\u0441\u0435<\/i> \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0441\u043b\u043e\u0435\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e \u044d\u0442\u0443 \u0437\u0430\u0431\u0430\u0432\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/through-the-interface.typepad.com\/through_the_interface\/2008\/05\/finding-all-the.html#comment-1292066291\"><u>\u0432 \u0431\u043b\u043e\u0433\u0435 Kean Walmsley<\/u><\/a> (\u0430\u043d\u0433\u043b.), <a href=\"http:\/\/adndevblog.typepad.com\/autocad\/2012\/12\/when-using-editorselectall-how-can-i-filter-entities-on-frozen-layers-out-net.html\"><u>\u0432 AutoCAD Devblog<\/u><\/a> (\u0430\u043d\u0433\u043b.), <a href=\"http:\/\/forums.autodesk.com\/t5\/net\/editor-selectall-to-get-selection-of-object-ids-not-on-locked\/td-p\/4584613\"><u>\u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 Autodesk<\/u><\/a> (\u0430\u043d\u0433\u043b.).<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043c\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b: <i>\u0443 \u043c\u0435\u043d\u044f<\/i> \u0432 AutoCAD 2010 \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <i>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e<\/i>, \u043e\u043d \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 .NET API. \u041d\u043e \u0447\u0442\u043e \u044d\u0442\u043e \u2014 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0431\u0430\u0433 \u0432 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0434\u043d\u0430\u0436\u0434\u044b, \u0431\u044b\u0442\u044c \u043c\u043e\u0436\u0435\u0442, \u043f\u043e\u0444\u0438\u043a\u0441\u044f\u0442, \u2014 \u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443.<\/p>\n<p>  \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u0438\u0442\u043e\u0433: \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0435\u0435 \u0441 \u044d\u0442\u0438\u043c.<\/p>\n<p>  <b><u>\u0414\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<\/u>.<\/b> \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u0430 <code>Editor.SelectAll()<\/code>, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 <code>Editor<\/code>. \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442 \u0432 AutoCAD, \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442; \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0411\u0414 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 (\u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 AutoCAD) <a href=\"http:\/\/forums.autodesk.com\/t5\/net\/how-to-determine-if-entity-is-a-block\/m-p\/4965514\/highlight\/true#M40206\"><u>\u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f<\/u><\/a> (\u0430\u043d\u0433\u043b.).<\/p>\n<h2>2.2 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u0443: \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0438\u043f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <code>Editor.SelectAll()<\/code> \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443.<\/p>\n<p>  \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0442\u0430\u043a\u043e\u0439: \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u0430\u0441\u0441\u0430 <code>SelectionFilter<\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code>Editor.SelectAll()<\/code>. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_FindCircles_2&quot;)] public void findCircles_2() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430     Document doc = Application.DocumentManager.MdiActiveDocument;     Database db = doc.Database;     Editor ed = doc.Editor;      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430     TypedValue[] filterlist = new TypedValue[1];      \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430     \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f     filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;);      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440     SelectionFilter filter = new SelectionFilter(filterlist);      \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430     \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!     PromptSelectionResult selRes = ed.SelectAll(filter);      \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439     if (selRes.Status != PromptStatus.OK)     {         ed.WriteMessage(&quot;\\nError!\\n&quot;);         return;     }      \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432     ObjectId[] ids = selRes.Value.GetObjectIds();      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c         foreach (ObjectId id in ids)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430             acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                 entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cd0\/222\/ea1\/cd0222ea149d4485a67b2cf92fa3d304.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f, \u043a\u0430\u043a.)<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043c\u0435\u0442\u043e\u0434 <code>Editor.SelectAll()<\/code> \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <code>SelectionFilter<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0437\u0430\u0434\u0430\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440. \u042d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <code>TypedValue<\/code>. \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>TypedValue<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430:<\/p>\n<pre><code>public TypedValue(int typeCode, object value); <\/code><\/pre>\n<p>  \u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/DXF\"><u>\u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c DXF<\/u><\/a> (rus). \u0412\u043e\u0442 \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443 <a href=\"http:\/\/www.autodesk.com\/techpubs\/autocad\/acadr14\/dxf\/general_dxf_conventions_al_u05_c.htm\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/u><\/a> (\u0430\u043d\u0433\u043b.):  <\/p>\n<blockquote><p>The DXF format is a tagged data representation of all the information contained in an AutoCAD drawing file of a specific version. Tagged data means that each data element in the file is preceded by an integer number that is called a group code. A group code&#8217;s value indicates what type of data element follows. It also indicates the meaning of a data element for a given object (or record) type. Virtually all user-specified information in a drawing file can be represented in DXF format. The DXF format is essentially the same when used with applications (AutoLISP and ARX). However, there are a few minor differences for some data groups.<\/p><\/blockquote>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0413\u0443\u0433\u043b-\u0442\u0440\u0430\u043d\u0441\u043b\u0435\u0439\u0442:<\/b><\/p>\n<div class=\"spoiler_text\">\u0424\u043e\u0440\u043c\u0430\u0442 DXF \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 AutoCAD \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0434 \u0442\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u0438\u043f\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438). \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 DXF. \u0412 \u0446\u0435\u043b\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442 DXF \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0438 \u0434\u043b\u044f AutoLISP, \u0438 \u0434\u043b\u044f ARX, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f.  <\/div>\n<\/div>\n<p>  \u0412 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <code>typeCode<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0. \u041e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d\u043e \u0432\u0437\u044f\u043b\u043e\u0441\u044c \u0438 \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u2014 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"http:\/\/www.autodesk.com\/techpubs\/autocad\/acadr14\/dxf\/group_codes_in_numerical_order_al_u05_c.htm\"><u>\u0441\u043f\u0438\u0441\u043a\u0435<\/u><\/a> (\u0430\u043d\u0433\u043b.)<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u044f \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0434\u0435\u0441\u044c:<\/b><\/p>\n<div class=\"spoiler_text\">-5: APP: persistent reactor chain<br \/>  -4: APP: conditional operator (used only with ssget)<br \/>  -3: APP: extended data (XDATA) sentinel (fixed)<br \/>  -2: APP: entity name reference (fixed)<br \/>  -1: APP: entity name. This changes each time a drawing is opened. It is never saved. (fixed)<br \/>  0: Text string indicating the entity type (fixed)<br \/>  1: Primary text value for an entity<br \/>  2: Name (attribute tag, block name, and so on)<br \/>  3-4: Other textual or name values<br \/>  5: Entity handle. Text string of up to 16: hexadecimal digits (fixed)<br \/>  6: Linetype name (fixed)<br \/>  7: Text style name (fixed)<br \/>  8: Layer name (fixed)<br \/>  9: DXF: variable name identifier (used only in HEADER section of the DXF file).<br \/>  10: Primary point. This is the start point of a line or text entity, center of a circle, and so on.<br \/>  DXF: X value of the primary point (followed by Y and Z value codes 20: and 30)<br \/>  APP: 3D point (list of three reals)<br \/>  11-18: Other points.<br \/>  DXF: X value of other points (followed by Y value codes 21-28: and Z value codes 31-38)<br \/>  APP: 3D point (list of three reals)<br \/>  20, 30: DXF: Y and Z values of the primary point<br \/>  21-28, 31-37: DXF: Y and Z values of other points<br \/>  38: DXF: entity&#8217;s elevation if nonzero.<br \/>  39: Entity&#8217;s thickness if nonzero (fixed)<br \/>  40-48: Floating-point values (text height, scale factors, and so on)<br \/>  48: Linetype scale. Floating-point scalar value. Default value is defined for all entity types.<br \/>  49: Repeated floating-point value. Multiple 49: groups may appear in one entity for variable-length tables (such as the dash lengths in the LTYPE table). A 7x group always appears before the first 49 group to specify the table length.<br \/>  50-58: Angles (output in degrees to DXF files and radians through AutoLISP and ARX applications).<br \/>  60: Entity visibility. Integer value. Absence or 0: indicates visibility; 1 indicates invisibility.<br \/>  62: Color number (fixed)<br \/>  66: &quot;Entities follow&quot; flag (fixed)<br \/>  67: Space&#8212;that is, model or paper space (fixed)<br \/>  68: APP: identifies whether viewport is on but fully off screen; is not active or is off.<br \/>  69: APP: viewport identification number.<br \/>  70-78: Integer values, such as repeat counts, flag bits, or modes<br \/>  90-99: 32-bit integer values<br \/>  100: Subclass data marker (with derived class name as a string). Required for all objects and entity classes that are derived from another concrete class to segregate data defined by different classes in the inheritance chain for the same object.<br \/>  This is in addition to the requirement for DXF names for each distinct concrete class derived from ARX (see &quot;Subclass Markers&quot;).<br \/>  102: Control string, followed by &quot;{&lt;arbitrary name&gt;&quot; or &quot;}&quot;. Similar to the xdata 1002: group code, except that when the string begins with &quot;{&quot;, it can be followed by an arbitrary string whose interpretation is up to the application. The only other allowable control string is &quot;}&quot; as a group terminator. As noted before, AutoCAD does not interpret these strings except during drawing audit operations; they are for application use.<br \/>  105: DIMVAR symbol table entry object handle<br \/>  210: Extrusion direction (fixed).<br \/>  DXF: X value of extrusion direction<br \/>  APP: 3D extrusion direction vector<br \/>  220, 230: DXF: Y and Z values of the extrusion direction<br \/>  280-289: 8-bit integer values<br \/>  300-309: Arbitrary text strings<br \/>  310-319: Arbitrary binary chunks with same representation and limits as 1004: group codes: hexadecimal strings of up to 254 characters represent data chunks of up to 127 bytes.<br \/>  320-329: Arbitrary object handles. Handle values that are taken &quot;as is.&quot; They are not translated during INSERT and XREF operations.<br \/>  330-339: Soft-pointer handle. Arbitrary soft pointers to other objects within same DXF file or drawing. Translated during INSERT and XREF operations.<br \/>  340-349: Hard-pointer handle. Arbitrary hard pointers to other objects within same DXF file or drawing. Translated during INSERT and XREF operations.<br \/>  350-359: Soft-owner handle. Arbitrary soft ownership links to other objects within same DXF file or drawing. Translated during INSERT and XREF operations.<br \/>  360-369: Hard-owner handle. Arbitrary hard ownership links to other objects within same DXF file or drawing. Translated during INSERT and XREF operations.<br \/>  999: DXF: The 999: group code indicates that the line following it is a comment string. DXFOUT does not include such groups in a DXF output file, but DXFIN honors them and ignores the comments. You can use the 999 group to include comments in a DXF file that you&#8217;ve edited.<br \/>  1000: ASCII string (up to 255: bytes long) in extended data.<br \/>  1001: Registered application name (ASCII string up to 31: bytes long) for extended data.<br \/>  1002: Extended data control string (&quot;{&quot;or &quot;}&quot;).<br \/>  1003: Extended data layer name.<br \/>  1004: Chunk of bytes (up to 127: bytes long) in extended data.<br \/>  1005: Entity handle in extended data. Text string of up to 16: hexadecimal digits<br \/>  1010: A point in extended data<br \/>  DXF: X value (followed by 1020: and 1030 groups)<br \/>  APP: 3D point<br \/>  1020, 1030: DXF: Y and Z values of a point<br \/>  1011: A 3D world space position in extended data<br \/>  DXF: X value (followed by 1021: and 1031 groups)<br \/>  APP: 3D point<br \/>  1021, 1031: DXF: Y and Z values of a World space position<br \/>  1012: A 3D world space displacement in extended data<br \/>  DXF: X value (followed by 1022: and 1032 groups)<br \/>  APP: 3D vector<br \/>  1022, 1032: DXF: Y and Z values of a World space displacement<br \/>  1013: A 3D world space direction in extended data.<br \/>  DXF: X value (followed by 1022: and 1032 groups)<br \/>  APP: 3D vector<br \/>  1023, 1033: DXF: Y and Z values of a World space direction<br \/>  1040: Extended data floating-point value.<br \/>  1041: Extended data distance value.<br \/>  1042: Extended data scale factor.<br \/>  1070: Extended data 16-bit signed integer.<br \/>  1071: Extended data 32-bit signed long.  <\/div>\n<\/div>\n<p>  <s>\u041f\u044f\u0442\u043e\u0439<\/s> \u0448\u0435\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u0434\u0435\u0442 \u044d\u0442\u0430:  <\/p>\n<blockquote><p>0: Text string indicating the entity type (fixed)<\/p><\/blockquote>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u0434\u0443 \u00ab0\u00bb \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0443\u0431\u043e\u0434\u0440\u043e\u0431\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0435\u0437\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 API \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <code>Autodesk.AutoCAD.DatabaseServices.DxfCode<\/code>:<\/p>\n<pre><code>[Wrapper(&quot;AcDb::DxfCode&quot;)] public enum DxfCode {     Invalid = -9999,     XDictionary = -6,     PReactors = -5,     Operator = -4,     XDataStart = -3,     FirstEntityId = -2,     HeaderId = -2,     End = -1,     Start = 0,     XRefPath = 1,     Text = 1,     AttributeTag = 2,     ShapeName = 2,     BlockName = 2,     SymbolTableName = 2,     MlineStyleName = 2,     SymbolTableRecordName = 2,     Description = 3,     TextFontFile = 3,     AttributePrompt = 3,     LinetypeProse = 3,     DimStyleName = 3,     DimPostString = 3,     CLShapeName = 4,     DimensionAlternativePrefixSuffix = 4,     TextBigFontFile = 4,     SymbolTableRecordComments = 4,     Handle = 5,     DimensionBlock = 5,     LinetypeName = 6,     DimBlk1 = 6,     DimBlk2 = 7,     TextStyleName = 7,     LayerName = 8,     CLShapeText = 9,     XCoordinate = 10,     YCoordinate = 20,     ZCoordinate = 30,     Elevation = 38,     Thickness = 39,     TxtSize = 40,     ViewportHeight = 40,     Real = 40,     ViewWidth = 41,     TxtStyleXScale = 41,     ViewportAspect = 41,     TxtStylePSize = 42,     ViewLensLength = 42,     ViewFrontClip = 43,     ViewBackClip = 44,     ShapeXOffset = 44,     ViewHeight = 45,     ShapeYOffset = 45,     ShapeScale = 46,     PixelScale = 47,     LinetypeScale = 48,     DashLength = 49,     MlineOffset = 49,     LinetypeElement = 49,     ViewportSnapAngle = 50,     Angle = 50,     ViewportTwist = 51,     Visibility = 60,     LayerLinetype = 61,     Color = 62,     HasSubentities = 66,     ViewportVisibility = 67,     ViewportActive = 68,     ViewportNumber = 69,     Int16 = 70,     ViewMode = 71,     TxtStyleFlags = 71,     RegAppFlags = 71,     CircleSides = 72,     LinetypeAlign = 72,     ViewportZoom = 73,     LinetypePdc = 73,     ViewportIcon = 74,     ViewportSnap = 75,     ViewportGrid = 76,     ViewportSnapStyle = 77,     ViewportSnapPair = 78,     Int32 = 90,     Subclass = 100,     EmbeddedObjectStart = 101,     ControlString = 102,     DimVarHandle = 105,     UcsOrg = 110,     UcsOrientationX = 111,     UcsOrientationY = 112,     XReal = 140,     ViewBrightness = 141,     ViewContrast = 142,     Int64 = 160,     XInt16 = 170,     NormalX = 210,     NormalY = 220,     NormalZ = 230,     XXInt16 = 270,     Int8 = 280,     RenderMode = 281,     Bool = 290,     XTextString = 300,     BinaryChunk = 310,     ArbitraryHandle = 320,     SoftPointerId = 330,     HardPointerId = 340,     SoftOwnershipId = 350,     HardOwnershipId = 360,     LineWeight = 370,     PlotStyleNameType = 380,     PlotStyleNameId = 390,     ExtendedInt16 = 400,     LayoutName = 410,     ColorRgb = 420,     ColorName = 430,     Alpha = 440,     GradientObjType = 450,     GradientPatType = 451,     GradientTintType = 452,     GradientColCount = 453,     GradientAngle = 460,     GradientShift = 461,     GradientTintVal = 462,     GradientColVal = 463,     GradientName = 470,     Comment = 999,     ExtendedDataAsciiString = 1000,     ExtendedDataRegAppName = 1001,     ExtendedDataControlString = 1002,     ExtendedDataLayerName = 1003,     ExtendedDataBinaryChunk = 1004,     ExtendedDataHandle = 1005,     ExtendedDataXCoordinate = 1010,     ExtendedDataWorldXCoordinate = 1011,     ExtendedDataWorldXDisp = 1012,     ExtendedDataWorldXDir = 1013,     ExtendedDataYCoordinate = 1020,     ExtendedDataWorldYCoordinate = 1021,     ExtendedDataWorldYDisp = 1022,     ExtendedDataWorldYDir = 1023,     ExtendedDataZCoordinate = 1030,     ExtendedDataWorldZCoordinate = 1031,     ExtendedDataWorldZDisp = 1032,     ExtendedDataWorldZDir = 1033,     ExtendedDataReal = 1040,     ExtendedDataDist = 1041,     ExtendedDataScale = 1042,     ExtendedDataInteger16 = 1070,     ExtendedDataInteger32 = 1071, } <\/code><\/pre>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0432\u043c\u0435\u0441\u0442\u043e<\/p>\n<pre><code>filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;); <\/code><\/pre>\n<p>  \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c<\/p>\n<pre><code>filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;CIRCLE&quot;); <\/code><\/pre>\n<p>  \u0418 \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442!<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c <i>\u043c\u0435\u043d\u044f<\/i>, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e 0 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00abStart\u00bb. \u041f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0431\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 (\u0447\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0445\u0440\u0435\u043d\u043e\u0432\u043e). \u0418\u043b\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0431\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>Autodesk.AutoCAD.DatabaseServices.DxfCode<\/code> \u0441 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c\u0438, \u0432\u0437\u044f\u0442\u044b\u043c\u0438 \u0441 \u043f\u043e\u0442\u043e\u043b\u043a\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 (\u0447\u0442\u043e, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0445\u0440\u0435\u043d\u043e\u0432\u043e). \u041c\u043e\u0436\u0435\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e (\u0447\u0442\u043e, \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0445\u0440\u0435\u043d\u043e\u0432\u043e). \u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 <i>\u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0438\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/i>! \u041d\u0430\u043b\u0435\u0432\u043e \u043f\u043e\u0439\u0434\u0435\u0448\u044c \u2014 \u043a\u043e\u043d\u044f \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0448\u044c, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443 \u0432\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0435\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0435 \u0441\u043f\u0430\u0433\u0435\u0442\u0442\u0438 \u2014 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0438. \u0410 \u0435\u0441\u043b\u0438 \u0441\u043e\u0439\u0442\u0438 \u0441 \u0443\u043c\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u0430\u0448\u0438 \u043f\u043b\u0430\u043d\u044b \u2014 <i>\u043f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438<\/i>, \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0447\u0443\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435.<\/div>\n<\/div>\n<p>  \u0411\u044b\u0441\u0442\u0440\u043e-\u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432.<\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0438\u0441\u043a\u0430\u0442\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438. \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438:<\/p>\n<pre><code>filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;LINE&quot;); <\/code><\/pre>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432:<\/p>\n<pre><code>filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;INSERT&quot;); <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043c\u0435\u043d \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"http:\/\/www.autodesk.com\/techpubs\/autocad\/acad2000\/dxf\/\"><u>\u0442\u0443\u0442<\/u><\/a> (\u0430\u043d\u0433\u043b.).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u0442 \u043e\u043d, \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439:<\/b><\/p>\n<div class=\"spoiler_text\">3DFACE<br \/>  3DSOLID<br \/>  ACAD_PROXY_ENTITY<br \/>  ARC<br \/>  ARCALIGNEDTEXT<br \/>  ATTDEF<br \/>  ATTRIB<br \/>  BODY<br \/>  CIRCLE<br \/>  DIMENSION<br \/>  ELLIPSE<br \/>  HATCH<br \/>  IMAGE<br \/>  INSERT<br \/>  LEADER<br \/>  LINE<br \/>  LWPOLYLINE<br \/>  MLINE<br \/>  MTEXT<br \/>  OLEFRAME<br \/>  OLE2FRAME<br \/>  POINT<br \/>  POLYLINE<br \/>  RAY<br \/>  REGION<br \/>  RTEXT<br \/>  SEQEND<br \/>  SHAPE<br \/>  SOLID<br \/>  SPLINE<br \/>  TEXT<br \/>  TOLERANCE<br \/>  TRACE<br \/>  VERTEX<br \/>  VIEWPORT<br \/>  WIPEOUT<br \/>  XLINE  <\/div>\n<\/div>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u0441\u044e\u0434\u0430 \u0431\u044b\u043b\u043e \u0432\u0437\u044f\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>&quot;INSERT&quot;<\/code>.  <\/div>\n<\/div>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043b\u043e\u0435 \u00ablayer-1\u00bb:<\/p>\n<pre><code>filterlist[0] = new TypedValue((int)DxfCode.LayerName, &quot;layer-1&quot;); <\/code><\/pre>\n<p>  \u0412 \u043e\u0434\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435 <code>TypedValue<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u00ab\u0418\u041b\u0418\u00bb (\u00abOR\u00bb).<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0418\u041b\u0418 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438:<\/p>\n<pre><code>filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;LINE,CIRCLE&quot;); <\/code><\/pre>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u043e\u0435 \u00ablayer-1\u00bb \u0418\u041b\u0418 \u00ablayer-2\u00bb:<\/p>\n<pre><code>filterlist[0] = new TypedValue((int)DxfCode.LayerName, &quot;layer-1,layer-2&quot;); <\/code><\/pre>\n<p>  <b><u>\u0412\u0410\u0416\u041d\u041e<\/u>:<\/b> \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u041d\u0415 \u0414\u041e\u041b\u0416\u041d\u041e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u0430!<\/p>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <code>TypedValue<\/code> \u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u00ab\u0418\u00bb (\u00abAND\u00bb).<\/p>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0418 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0435:<\/p>\n<pre><code>TypedValue[] filterlist = new TypedValue[2]; filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;CIRCLE&quot;); filterlist[1] = new TypedValue((int)DxfCode.LayerName, &quot;0&quot;); <\/code><\/pre>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u00abblock-1\u00bb:<\/p>\n<pre><code>TypedValue[] filterlist = new TypedValue[2]; filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;INSERT&quot;); filterlist[1] = new TypedValue((int)DxfCode.BlockName, &quot;block-1&quot;); <\/code><\/pre>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0418 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0435 \u0418\u041b\u0418 \u0441\u043b\u043e\u0435 \u00ablayer-1\u00bb:<\/p>\n<pre><code>TypedValue[] filterlist = new TypedValue[2]; filterlist[0] = new TypedValue((int)DxfCode.Start, &quot;LINE&quot;); filterlist[1] = new TypedValue((int)DxfCode.LayerName, &quot;0,layer-1&quot;); <\/code><\/pre>\n<p>  \u041d\u0443 \u0432\u043e\u0442, \u0432\u0440\u043e\u0434\u0435 \u0438 \u043d\u0435 \u0431\u043e\u043b\u044c\u043d\u043e\u2026 \u0411\u044b\u043b\u043e. \u041f\u043e\u043a\u0430 \u0447\u0442\u043e.<\/p>\n<h2>2.3 \u0424\u0438\u043b\u044c\u0442\u0440\u044b \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 <s>\u0443\u043a\u0440\u0430\u0434\u0435\u043d\u043d\u044b\u0439<\/s> \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 (\u044f <s>\u043d\u0430\u043f\u0438\u0441\u0430\u043b<\/s> \u043f\u0435\u0440\u0435\u0432\u0435\u043b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438) <a href=\"http:\/\/through-the-interface.typepad.com\/through_the_interface\/2008\/07\/conditional-sel.html\"><u>\u043f\u0440\u0438\u043c\u0435\u0440<\/u><\/a> \u0438\u0437 \u0431\u043b\u043e\u0433\u0430 Kean Walmsley.<\/p>\n<p>  \u041f\u0443\u0441\u0442\u044c \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438 \u043d\u0430 \u0441\u043b\u043e\u0435 \u00ablayer-1\u00bb \u0438 \u0432\u0441\u0435 \u043a\u0440\u0443\u0433\u0438 \u043d\u0430 \u0441\u043b\u043e\u0435 \u00ablayer-2\u00bb. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043c\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <code>TypedValue<\/code>: \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c, \u0447\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u2014 \u044d\u0442\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438 \u0438 \u0432\u0441\u0435 \u043a\u0440\u0443\u0433\u0438 \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u043e\u044f\u0445 \u0441\u0440\u0430\u0437\u0443.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u043e\u0440 \u043f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044e:<\/p>\n<p>  ((\u0421\u041b\u041e\u0419 == \u00ablayer-1\u00bb) \u0418 (\u0422\u0418\u041f == \u00ab\u041b\u0438\u043d\u0438\u044f\u00bb)) \u0418\u041b\u0418 ((\u0421\u041b\u041e\u0419 == \u00ablayer-2\u00bb) \u0418 (\u0422\u0418\u041f == \u00ab\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u00bb))<\/p>\n<p>  \u0412 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 AutoCAD \u043d\u0430\u0448\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<ul>\n<li>&lt;OR<\/li>\n<li>\n<ul>\n<li>&lt;AND<\/li>\n<li>\n<ul>\n<li>Layer == \u00ablayer-1\u00bb<\/li>\n<li>Entity type == \u00abLINE\u00bb<\/li>\n<\/ul>\n<\/li>\n<li>AND&gt;<\/li>\n<li>&lt;AND<\/li>\n<li>\n<ul>\n<li>Layer == \u00ablayer-2\u00bb<\/li>\n<li>Entity type == \u00abCIRCLE\u00bb<\/li>\n<\/ul>\n<\/li>\n<li>AND&gt;<\/li>\n<\/ul>\n<\/li>\n<li>OR&gt;<\/li>\n<\/ul>\n<p>  \u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>TypedValue<\/code>:<\/p>\n<pre><code>TypedValue[] filterlist = new TypedValue[10]; filterlist[0] = new TypedValue((int)DxfCode.Operator, &quot;&lt;OR&quot;); filterlist[1] = new TypedValue((int)DxfCode.Operator, &quot;&lt;AND&quot;); filterlist[2] = new TypedValue((int)DxfCode.LayerName, &quot;layer-1&quot;); filterlist[3] = new TypedValue((int)DxfCode.Start, &quot;LINE&quot;); filterlist[4] = new TypedValue((int)DxfCode.Operator, &quot;AND&gt;&quot;); filterlist[5] = new TypedValue((int)DxfCode.Operator, &quot;&lt;AND&quot;); filterlist[6] = new TypedValue((int)DxfCode.LayerName, &quot;layer-2&quot;); filterlist[7] = new TypedValue((int)DxfCode.Start, &quot;CIRCLE&quot;); filterlist[8] = new TypedValue((int)DxfCode.Operator, &quot;AND&gt;&quot;); filterlist[9] = new TypedValue((int)DxfCode.Operator, &quot;OR&gt;&quot;); <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u044d\u0442\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 AutoCAD:  <\/p>\n<blockquote><p>Layer:layer-2; Type:Autodesk.AutoCAD.DatabaseServices.Circle; Color: 128,255,64<br \/>  Layer:layer-1; Type:Autodesk.AutoCAD.DatabaseServices.Line; Color: 0,200,255<br \/>  Layer:layer-1; Type:Autodesk.AutoCAD.DatabaseServices.Line; Color: 255,128,255  <\/p><\/blockquote>\n<p>  \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043f\u0440\u043e\u0441\u0442\u043e\u0439: \u043e\u0441\u043e\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u044d\u0442\u0438 \u0447\u0430\u0441\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 OR, AND, NOT, XOR\u2026<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u0435\u0440\u044c\u0435\u0437\u043d\u043e? <i>XOR?<\/i> \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0438\u043c\u2026 \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u044f \u0442\u0435\u0431\u044f \u0432\u0438\u0434\u0435\u043b \u043d\u0430 \u043b\u0430\u0431\u0435 \u043f\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0435.<br \/>  \u041a\u0430\u043a \u0436\u0438\u0437\u043d\u044c, \u0440\u043e\u0434\u0438\u043c\u044b\u0439? \u0413\u0434\u0435-\u0442\u043e \u0442\u044b \u0441\u0435\u0439\u0447\u0430\u0441? \u041a\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u0438 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0431\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442?  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/help.autodesk.com\/view\/ACD\/2015\/ENU\/?guid=GUID-04B8192E-B0D8-4731-A882-AE92B7CFAE22\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a> (\u0430\u043d\u0433\u043b.).<\/p>\n<p>  \u0412\u0441\u0435, \u0445\u0432\u0430\u0442\u0438\u0442 \u0443\u0436\u0435 \u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0436\u043d\u043e\u2026<\/p>\n<h1>3 \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435<\/h1>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e <code>Editor.SelectAll()<\/code>, \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 (\u0442\u043e\u0447\u043d\u0435\u0435, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f) \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435. \u0412\u043e\u0442 \u0441\u0441\u044b\u043b\u043a\u0438: <a href=\"http:\/\/knowledge.autodesk.com\/support\/autocad\/learn-explore\/caas\/CloudHelp\/cloudhelp\/2016\/ENU\/AutoCAD-NET\/files\/GUID-CBECEDCF-3B4E-4DF3-99A0-47103D10DADD-htm.html\"><u>\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/u><\/a>, <a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/sozdanie-i-redaktirovanie-obektov-autocad\/rabota-s-vybrannymi-naborami\/vybor-obektov-v-certeze\"><u>\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/u><\/a>.<\/p>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0435\u0449\u0435 \u0434\u0435\u0441\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043a\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u0447\u0435\u043c <code>Editor.SelectAll()<\/code>. \u0417\u0430\u0442\u043e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0441\u0430\u043c\u044b\u0439 \u043c\u043e\u0449\u043d\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u0444\u0444\u0442\u043e\u043f: \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0435 \u043a\u0440\u043e\u0432\u0430\u0432\u044b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 (\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c)<\/b><\/p>\n<div class=\"spoiler_text\">\u042f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u0443\u043c\u0430\u043b, \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u044e. \u0412 \u0438\u0442\u043e\u0433\u0435, \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u2014 \u0432\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0447\u0435\u043c?<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0447\u0435\u0440\u0442\u0435\u0436 \u0441 <b>\u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c<\/b> \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0438 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435 \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0438 \u0432\u044b\u0445\u043e\u0434\u0430 \u043d\u0435\u0442, \u0438 \u0441\u043a\u043e\u0440\u043e \u0440\u0430\u0441\u0441\u0432\u0435\u0442 \u2014 \u0442\u043e \u0432\u043e\u0442 \u0432\u0430\u043c <a href=\"http:\/\/www.theswamp.org\/index.php?PHPSESSID=2c2bpmusj2ak8dql4f4qgbol90&amp;topic=39272.15\"><u>\u0441\u0441\u044b\u043b\u043e\u0447\u043a\u0430<\/u><\/a> (\u0430\u043d\u0433\u043b.), \u0433\u0434\u0435 \u0410\u043d\u0434\u0440\u0435\u0439 \u0411\u0443\u0448\u043c\u0430\u043d  <a href=\"http:\/\/habrahabr.ru\/users\/hwd\/\" class=\"user_link\">hwd<\/a>, \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0420\u0438\u0432\u0438\u043b\u0438\u0441 \u0438 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u044b \u0440\u0430\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044f \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u043a\u0443.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0435 \u043a \u0432\u0438\u0434\u0438\u043c\u043e\u043c\u0443 \u0447\u0435\u0440\u0442\u0435\u0436\u0443 (<code>ModelSpace<\/code>), \u0430 \u043a\u043e \u0432\u0441\u0435\u0439 \u0411\u0414 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043d\u043e \u0438 \u0441\u043b\u043e\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0442.\u043f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>\/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c (\u043f\u043e\u0434\u0445\u043e\u0434 3) \/\/ \u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e! \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f! [CommandMethod(&quot;Habr_IterateThroughAllObjects_3&quot;)] public void iterateThroughAllObjects_3() {     Database db = HostApplicationServices.WorkingDatabase;     Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;     long amount = 0;     Dictionary&lt;string, int&gt; d = new Dictionary&lt;string, int&gt;();     ObjectId id = ObjectId.Null;     for (long i = db.BlockTableId.Handle.Value; i &lt; db.Handseed.Value; i++)     {         Handle h = new Handle(i);         if (db.TryGetObjectId(h, out id) && !id.IsNull && id.IsValid && !id.IsErased)             {                 string t = id.ObjectClass.DxfName;                 amount++;                 if(d.ContainsKey(t))                     d[t]++;                 else                     d.Add(t, 1);             }     }     foreach(KeyValuePair&lt;string,int&gt; kvp in d)         ed.WriteMessage(&quot;\\n{0}: {1} &quot;, kvp.Key, kvp.Value);     ed.WriteMessage(&quot;\\nTotal {0} objects in drawing\\n&quot;, amount); } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c):<\/b><\/p>\n<div class=\"spoiler_text\">Command: Habr_IterateThroughAllObjects_3<br \/>  TABLE: 11<br \/>  DICTIONARY: 16<br \/>  ACDBDICTIONARYWDFLT: 1<br \/>  ACDBPLACEHOLDER: 1<br \/>  LAYER: 3<br \/>  STYLE: 2<br \/>  APPID: 7<br \/>  LTYPE: 3<br \/>  MLINESTYLE: 1<br \/>  BLOCK_RECORD: 5<br \/>  BLOCK: 5<br \/>  ENDBLK: 5<br \/>  LAYOUT: 3<br \/>  DIMSTYLE: 3<br \/>  DICTIONARYVAR: 7<br \/>  TABLESTYLE: 1<br \/>  VPORT: 1<br \/>  MATERIAL: 3<br \/>  VISUALSTYLE: 19<br \/>  SCALE: 17<br \/>  MLEADERSTYLE: 2<br \/>  XRECORD: 4<br \/>  FONT_TABLE_RECORD: 2<br \/>  CIRCLE: 5<br \/>  LINE: 9<br \/>  LWPOLYLINE: 2<br \/>  TEXT: 2<br \/>  INSERT: 3<br \/>  ARC: 1<br \/>  Total 144 objects in drawing  <\/div>\n<\/div>\n<p>  \u0422\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043e \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0434\u0443\u043d\u0441\u0442\u0432\u043e \u0441 \u043f\u0440\u044f\u043c\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0411\u0414 \u043f\u043e \u0438\u0445 \u0445\u0435\u043d\u0434\u043b\u0430\u043c. \u042f \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0431\u044b\u043b\u043e \u0432\u043a\u0443\u0440\u0438\u0442\u044c \u043a\u043e\u0434, \u043d\u043e \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043b, \u0447\u0442\u043e \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0437\u0430\u0432\u044f\u0437\u0430\u043b, \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u0442\u043e welcome! \u0427\u0442\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044f\u2026 \u041f\u043e\u0436\u0430\u043b\u0443\u0439, <i>\u0440\u0430\u0437\u0431\u043e\u0440 \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u0434\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f<\/i>.<\/div>\n<\/div>\n<p>  <\/p>\n<h1>4 \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h1>\n<p>  \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0430\u0437\u044b \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u0438\u0441\u043a\u0430. \u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u043d\u0446\u0438\u043f: \u043f\u043e\u043b\u0443\u0447\u0438\u0432 <code>ObjectID<\/code>, \u043c\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0438 \u0432\u043d\u043e\u0441\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u0443 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0447\u0435\u0440\u0442\u0435\u0436\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434.<\/p>\n<h2>4.1 \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0447\u0435\u0440\u0442\u0435\u0436\u0430<\/h2>\n<p>  \u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e:  <\/p>\n<ol>\n<li>\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c;<\/li>\n<li>\u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>Erase();<\/code><\/li>\n<li>\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e.<\/li>\n<\/ol>\n<p>  \u0421\u0441\u044b\u043b\u043a\u0438: <a href=\"http:\/\/docs.autodesk.com\/ACD\/2010\/ENU\/AutoCAD%20.NET%20Developer%27s%20Guide\/index.html?url=WS1a9193826455f5ff2566ffd511ff6f8c7ca-3eef.htm,topicNumber=d0e20517\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/u><\/a> (\u0430\u043d\u0433\u043b.), <a href=\"http:\/\/knowledge.autodesk.com\/support\/autocad-civil-3d\/getting-started\/caas\/CloudHelp\/cloudhelp\/2016\/ENU\/AutoCAD-NET\/files\/GUID-A9283274-3E5B-4739-975B-03A30536EE64-htm.html\"><u>\u0437\u0435\u0440\u043a\u0430\u043b\u043e<\/u><\/a> (\u0430\u043d\u0433\u043b.).<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u043c \u0441 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u0432\u0441\u0435 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_EraseCircles_2&quot;)] public void eraseCircles_2() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430     Document doc = Application.DocumentManager.MdiActiveDocument;     Database db = doc.Database;     Editor ed = doc.Editor;      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430     TypedValue[] filterlist = new TypedValue[1];      \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430     \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f     filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;);      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440     SelectionFilter filter = new SelectionFilter(filterlist);      \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430     \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!     PromptSelectionResult selRes = ed.SelectAll(filter);      \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439     if (selRes.Status != PromptStatus.OK)     {         ed.WriteMessage(&quot;\\nError!\\n&quot;);         return;     }      \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432     ObjectId[] ids = selRes.Value.GetObjectIds();      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c         foreach (ObjectId id in ids)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c             entity.UpgradeOpen();              \/\/ \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442             entity.Erase();         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a9a\/624\/e5e\/a9a624e5efd746b0b907fa2b8467420d.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>UpgradeOpen()<\/code>, \u0430 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c:<\/p>\n<pre><code>Entity entity = (Entity)tr.GetObject(id, OpenMode.ForWrite); entity.Erase(); <\/code><\/pre>\n<p>  <b><u>\u0412\u0430\u0436\u043d\u043e!<\/u><\/b> \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u043e\u0435 \u2014 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u043c\u0443 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f, \u0438 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u044e\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0f2\/b32\/9bc\/0f2b329bc19244ad82e8ac62fbd91a28.PNG\"\/><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0449\u0435 \u0440\u0430\u0437 \u043d\u0430\u043f\u043e\u043c\u043d\u044e \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0443\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>try...catch<\/code> \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u0442\u0430\u043a\u043e\u0433\u043e:<\/p>\n<pre><code>Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead); try {     entity.UpgradeOpen();     entity.Erase(); } catch () {     ed.WriteMessage(&quot;\\nSomething went wrong...\\n&quot;); } <\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 AutoCAD.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>try...catch<\/code> \u0432 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u2014 \u044d\u0442\u043e \u0442\u043e\u0442 \u0435\u0449\u0435 \u0431\u044b\u0434\u043b\u043e\u043a\u043e\u0434. \u0412\u0435\u0434\u044c \u043c\u044b \u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u043d\u0430\u0441 \u0436\u0434\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 <code>eOnLockedLayer<\/code>, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0432\u0441\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u0434\u0440\u044f\u0434, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e <code>Autodesk.AutoCAD.Runtime.Exception<\/code> \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u043e\u0448\u0438\u0431\u043a\u0438 (<code>ErrorStatus<\/code>) \u2014 \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>catch (Autodesk.AutoCAD.Runtime.Exception ex) {     if (ex.ErrorStatus == ErrorStatus.OnLockedLayer)     {         ...     } } <\/code><\/pre>\n<p>  \u0422\u0443\u0442 \u043f\u043e\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u0441\u0430\u043c\u0438 \u2014 \u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0438\u0442\u0435, \u0447\u0442\u043e \u00ab\u044f\u0436\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u00bb, \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0438\u0442\u0435, \u0447\u0442\u043e \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f \u0432 \u0434\u0435\u0431\u0440\u0438 \u043a\u043e\u0434\u0430 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0434\u043b\u044f \u0432\u0430\u0441, \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u0430\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u041d\u0415_\u041d\u0423\u0416\u041d\u0410. \u041f\u043e-\u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443, \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043e\u0446\u0435\u043d\u043a\u0438 \u0440\u0438\u0441\u043a\u043e\u0432 \u0438 \u0442. \u0434.<\/p>\n<p>  \u041d\u043e \u2014 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443 \u0435\u0449\u0435 \u0440\u0430\u0437 \u2014 \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443 \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.  <\/div>\n<\/div>\n<p>  <\/p>\n<h2>4.2 \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h2>\n<p>  \u041f\u043e\u0434 \u00ab\u0442\u0438\u043f\u043e\u0432\u044b\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438\u00bb \u044f \u0438\u043c\u0435\u044e \u0432 \u0432\u0438\u0434\u0443 \u0442\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0441\u0443\u0449\u0438 \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 AutoCAD. \u042d\u0442\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442.<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u0442\u0430\u043a \u0436\u0435:  <\/p>\n<ol>\n<li>\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c;<\/li>\n<li>\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043d\u0443\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e;<\/li>\n<li>\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e.<\/li>\n<\/ol>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u043c\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_RepaintOrange_2&quot;)] public void repaintOrange_2() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430     Document doc = Application.DocumentManager.MdiActiveDocument;     Database db = doc.Database;     Editor ed = doc.Editor;      \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b     \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!     PromptSelectionResult selRes = ed.SelectAll();      \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439     if (selRes.Status != PromptStatus.OK)     {         ed.WriteMessage(&quot;\\nError!\\n&quot;);         return;     }      \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432     ObjectId[] ids = selRes.Value.GetObjectIds();      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c         foreach (ObjectId id in ids)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity             Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c             entity.UpgradeOpen();              \/\/ \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439             entity.Color = Autodesk.AutoCAD.Colors.Color.FromRgb(255, 128, 0);         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a42\/945\/407\/a42945407d2640029990508875742513.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0426\u0432\u0435\u0442 \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u043e\u0432 \u0446\u0432\u0435\u0442 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 \u0438 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0447\u0435\u0440\u043d\u044b\u043c\u0438 \u2014 \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u043e\u0432 \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0434\u0430\u043d \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 \u0446\u0432\u0435\u0442:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043a\u0432\u0437\u0432\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f Color:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8b4\/e0f\/59e\/8b4e0f59eae843379adb0fd1f468873a.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u041d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u044d\u0442\u0443 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432 \u0432\u0438\u0434\u0443.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code>Entity<\/code>. \u041d\u043e \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0430 146% \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0443 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c. \u0415\u0441\u043b\u0438 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <s>\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b<\/s> \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>try...catch<\/code> \u0438 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h2>4.3 \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h2>\n<p>  \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043b\u0430\u0441\u0441 <code>Entity<\/code>, \u043c\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0435\u0433\u043e \u0437\u0430 \u0440\u0430\u0434\u0438\u0443\u0441. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043a \u0442\u0438\u043f\u0443 <code>Circle<\/code>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_ModifyCircles_2&quot;)] public void modifyCircles_2() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430     Document doc = Application.DocumentManager.MdiActiveDocument;     Database db = doc.Database;     Editor ed = doc.Editor;      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430     TypedValue[] filterlist = new TypedValue[1];      \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430     \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f     filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;);      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440     SelectionFilter filter = new SelectionFilter(filterlist);      \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430     \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!     PromptSelectionResult selRes = ed.SelectAll(filter);      \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439     if (selRes.Status != PromptStatus.OK)     {         ed.WriteMessage(&quot;\\nError!\\n&quot;);         return;     }      \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432     ObjectId[] ids = selRes.Value.GetObjectIds();      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c         foreach (ObjectId id in ids)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Circle             Circle cir = (Circle)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c             cir.UpgradeOpen();                          \/\/ \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441             cir.Radius = cir.Radius * 2;         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fcf\/af9\/878\/fcfaf98783574c1c88feecdcaa9873ea.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0442\u0438\u043f\u0443 <code>Circle<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0434\u043e\u0431\u0440\u043e\u043c \u043d\u0435 \u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/296\/eab\/0d5\/296eab0d5e4c450bbbdf59718d94d85a.PNG\"\/><\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>try...catch<\/code>! \u0418\u043b\u0438 \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0439\u0442\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e, \u043a\u0430\u043a \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043b\u0438\u0431\u043e \u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0442\u0438\u043f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c:<\/p>\n<pre><code>Entity ent = (Entity)tr.GetObject(id, OpenMode.ForRead); if (ent.GetType() == typeof(Circle)) {     Circle cir = (Circle)tr.GetObject(id, OpenMode.ForRead); } <\/code><\/pre>\n<p>  \u041f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443, \u0447\u0442\u043e \u043d\u0438 \u0444\u0438\u043b\u044c\u0442\u0440, \u043d\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435 \u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u044f\u0442 \u043e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0441\u043b\u043e\u0435\u043c \u0438 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 <code>eOnLockedLayer<\/code>. \u0414\u043b\u044f \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u043d\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>try...catch<\/code>, \u043b\u0438\u0431\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u044b \/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0441\u0435\u043a\u0443\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/p>\n<h2>4.4 \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 (\u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0431\u043b\u043e\u043a\u0430), \u0442\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;Habr_MoveBlocks_2&quot;)] public void moveBlocks_2() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430     Document doc = Application.DocumentManager.MdiActiveDocument;     Database db = doc.Database;     Editor ed = doc.Editor;      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430     TypedValue[] filterlist = new TypedValue[1];      \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430     \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f     filterlist[0] = new TypedValue(0, &quot;INSERT&quot;);      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440     SelectionFilter filter = new SelectionFilter(filterlist);      \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430     \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!     PromptSelectionResult selRes = ed.SelectAll(filter);      \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439     if (selRes.Status != PromptStatus.OK)     {         ed.WriteMessage(&quot;\\nError!\\n&quot;);         return;     }      \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432     ObjectId[] ids = selRes.Value.GetObjectIds();      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction tr = db.TransactionManager.StartTransaction())     {         \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c         foreach (ObjectId id in ids)         {             \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 BlockReference             BlockReference br = (BlockReference)tr.GetObject(id, OpenMode.ForRead);              \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c             br.UpgradeOpen();              \/\/ \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430             br.Position = Point3d.Origin;         }          tr.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/384\/bf3\/402\/384bf34022f2412887e83e12505a4a7f.jpg\"\/>  <\/div>\n<\/div>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u043e\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>Position<\/code> \u0434\u043b\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Center<\/code>.<\/p>\n<h2>4.5 \u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438<\/h2>\n<p>  AutoCAD .NET API \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u043b\u043e\u043c\u0430\u043d\u044b\u0445. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044f \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0432\u0435\u0449\u0430\u043c\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443.<\/p>\n<p>  \u041d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u0443\u0436 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u0441 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e .NET API (<a href=\"http:\/\/help.autodesk.com\/view\/ACD\/2016\/ENU\/?guid=GUID-E9D01C58-707B-47BD-86C3-0E199E58FB36\"><u>\u0441\u0441\u044b\u043b\u043a\u0430<\/u><\/a> (\u0430\u043d\u0433\u043b.), <a href=\"http:\/\/docs.autodesk.com\/ACD\/2010\/ENU\/AutoCAD%20.NET%20Developer%27s%20Guide\/index.html?url=WS1a9193826455f5ff2566ffd511ff6f8c7ca-3eef.htm,topicNumber=d0e20517\"><u>\u0437\u0435\u0440\u043a\u0430\u043b\u043e<\/u><\/a> (\u0430\u043d\u0433\u043b.)). \u041d\u0443 \u0438 <a href=\"http:\/\/forums.autodesk.com\/t5\/net\/bd-p\/152\"><u>\u0444\u043e\u0440\u0443\u043c\u044b AutoCAD<\/u><\/a> \u0432 \u043f\u043e\u043c\u043e\u0449\u044c. \u041c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430 <a href=\"http:\/\/adn-cis.org\/forum\/index.php?board=4.0\"><u>\u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 Autodesk \u0432 \u0421\u041d\u0413<\/u><\/a>.<\/p>\n<h1>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 &#8212; \u0432\u043e\u0442 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u0434\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>using System; using System.Collections.Generic;  using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.EditorInput; using acad = Autodesk.AutoCAD.ApplicationServices.Application;  namespace HabrPlug_SearchAndRescue {     public class ClassMyAutoCADDLL_SearchAndRescue     {         public class Commands : IExtensionApplication         {             \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0446\u0432\u0435\u0442\u0430             Autodesk.AutoCAD.Colors.Color color_Pink = Autodesk.AutoCAD.Colors.Color.FromRgb(255, 128, 255);             Autodesk.AutoCAD.Colors.Color color_Blue =  Autodesk.AutoCAD.Colors.Color.FromRgb(0, 200, 255);             Autodesk.AutoCAD.Colors.Color color_LightGreen = Autodesk.AutoCAD.Colors.Color.FromRgb(128, 255, 64);              \/\/ ID \u0441\u043b\u043e\u0435\u0432 &quot;layer-1&quot; \u0438 &quot;layer-2&quot;             ObjectId layer_1;             ObjectId layer_2;              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u043e\u0438             public void createLayers()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;                 Database acCurDb = acDoc.Database;                  \/\/ \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442                 using (DocumentLock docloc = acDoc.LockDocument())                 {                     \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     using (Transaction tr = acCurDb.TransactionManager.StartTransaction())                     {                         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043b\u043e\u0435\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                         LayerTable acLyrTbl = tr.GetObject(acCurDb.LayerTableId, OpenMode.ForWrite) as LayerTable;                          \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                         LayerTableRecord acLyrTblRec_1 = new LayerTableRecord();                         acLyrTblRec_1.Name = &quot;layer-1&quot;;                         \/\/ \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043b\u043e\u0435\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c ID \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043b\u043e\u044f                         layer_1 = acLyrTbl.Add(acLyrTblRec_1);                         \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442                         tr.AddNewlyCreatedDBObject(acLyrTblRec_1, true);                           \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                         LayerTableRecord acLyrTblRec_2 = new LayerTableRecord();                         acLyrTblRec_2.Name = &quot;layer-2&quot;;                         \/\/ \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043b\u043e\u0435\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c ID \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043b\u043e\u044f                         layer_2 = acLyrTbl.Add(acLyrTblRec_2);                         \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442                         tr.AddNewlyCreatedDBObject(acLyrTblRec_2, true);                          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                         tr.Commit();                     }                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot;             public void createBlock_1()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u0438\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430                 const string blockName = &quot;block-1&quot;;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 Transaction tr = db.TransactionManager.StartTransaction();                 using (tr)                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite);                      \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435\u0442 \u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c; \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c - \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b                     if (bt.Has(blockName))                     {                         return;                     }                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                     BlockTableRecord btr = new BlockTableRecord();                     btr.Name = blockName;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     bt.Add(btr);                     tr.AddNewlyCreatedDBObject(btr, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0431\u043b\u043e\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = Point3d.Origin;                     acCircle.Radius = 25;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043b\u0438\u043d\u0438\u044e                     Line acLine = new Line(new Point3d(18, 18, 0), new Point3d(35, 35, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acLine);                     tr.AddNewlyCreatedDBObject(acLine, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e                     Polyline acPolyline = new Polyline();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acPolyline.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b                     acPolyline.AddVertexAt(0, new Point2d(20, 35), 0, 0, 0);                     acPolyline.AddVertexAt(1, new Point2d(35, 35), 0, 0, 0);                     acPolyline.AddVertexAt(2, new Point2d(35, 20), 0, 0, 0);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acPolyline);                     tr.AddNewlyCreatedDBObject(acPolyline, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-2&quot;             public void createBlock_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u0438\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430                 const string blockName = &quot;block-2&quot;;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 Transaction tr = db.TransactionManager.StartTransaction();                 using (tr)                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite);                      \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435\u0442 \u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c; \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c - \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b                     if (bt.Has(blockName))                     {                         return;                     }                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0437\u0430\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f                     BlockTableRecord btr = new BlockTableRecord();                     btr.Name = blockName;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     bt.Add(btr);                     tr.AddNewlyCreatedDBObject(btr, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0431\u043b\u043e\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = Point3d.Origin;                     acCircle.Radius = 25;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(0, -25, 0), new Point3d(0, -50, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_1.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_2 = new Line(new Point3d(-7, -39, 0), new Point3d(7, -39, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_2.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     btr.AppendEntity(acLine_2);                     tr.AddNewlyCreatedDBObject(acLine_2, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0435             public void layer_0_createObjects()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = acad.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(225, 225, 0), new Point3d(225, 175, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_1.SetDatabaseDefaults();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acLine_1.Layer = &quot;0&quot;;                     acLine_1.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_2 = new Line(new Point3d(250, 225, 0), new Point3d(250, 175, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_2.SetDatabaseDefaults();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acLine_2.Layer = &quot;0&quot;;                     acLine_2.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_2);                     tr.AddNewlyCreatedDBObject(acLine_2, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_3 = new Line(new Point3d(275, 225, 0), new Point3d(275, 175, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine_3.SetDatabaseDefaults();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acLine_3.Layer = &quot;0&quot;;                     acLine_3.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_3);                     tr.AddNewlyCreatedDBObject(acLine_3, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e                     Polyline acPolyline = new Polyline();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acPolyline.SetDatabaseDefaults();                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b                     acPolyline.AddVertexAt(0, new Point2d(300, 225), 0, 0, 0);                     acPolyline.AddVertexAt(1, new Point2d(325, 175), 0, 0, 0);                     acPolyline.AddVertexAt(2, new Point2d(350, 225), 0, 0, 0);                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acPolyline.Layer = &quot;0&quot;;                     acPolyline.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acPolyline);                     tr.AddNewlyCreatedDBObject(acPolyline, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = new Point3d(400, 200, 0);                     acCircle.Radius = 25;                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     acCircle.Layer = &quot;0&quot;;                     acCircle.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442                     DBText text = new DBText();                     text.Position = new Point3d(450, 175, 0);                     text.Height = 50;                     text.TextString = &quot;HABR!&quot;;                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442                     text.Layer = &quot;0&quot;;                     text.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(text);                     tr.AddNewlyCreatedDBObject(text, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043b\u043e\u0435 &quot;layer-1&quot;             public void layer_1_createObjects()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = acad.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c                     \/\/ (\u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430)                     ObjectId currentLayer = db.Clayer;                     db.Clayer = layer_1;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(225, 25, 0), new Point3d(225, -25, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acLine_1.SetDatabaseDefaults();                     acLine_1.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_2 = new Line(new Point3d(250, 25, 0), new Point3d(250, -25, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acLine_2.SetDatabaseDefaults();                     acLine_2.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_2);                     tr.AddNewlyCreatedDBObject(acLine_2, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = new Point3d(300, 0, 0);                     acCircle.Radius = 25;                     acCircle.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442                     DBText text = new DBText();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     text.Position = new Point3d(350, -25, 0);                     text.Height = 50;                     text.TextString = &quot;HABR!&quot;;                     text.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(text);                     tr.AddNewlyCreatedDBObject(text, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot;                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c ObjectID \u0431\u043b\u043e\u043a\u0430                     ObjectId btrId = bt[&quot;block-1&quot;];                     \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430                     BlockReference br = new BlockReference(new Point3d(600, 0, 0), btrId);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(br);                     tr.AddNewlyCreatedDBObject(br, true);                      \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439                     db.Clayer = currentLayer;                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043b\u043e\u0435 &quot;layer-2&quot;             public void layer_2_createObjects()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document doc = acad.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c                     \/\/ (\u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430)                     ObjectId currentLayer = db.Clayer;                     db.Clayer = layer_2;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model Space) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord ms = tr.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u043e\u0437\u043e\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e                     Line acLine_1 = new Line(new Point3d(225, -175, 0), new Point3d(225, -225, 0));                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acLine_1.SetDatabaseDefaults();                     acLine_1.Color = color_Pink;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acLine_1);                     tr.AddNewlyCreatedDBObject(acLine_1, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u043e\u043b\u0443\u0431\u0443\u044e \u0434\u0443\u0433\u0443                     Arc acArc = new Arc(new Point3d(250, -200, 0), 25, -45 \/ 180.0 * Math.PI, 45 \/ 180.0 * Math.PI);                      \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acArc.SetDatabaseDefaults();                     acArc.Color = color_Blue;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acArc);                     tr.AddNewlyCreatedDBObject(acArc, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c                     Circle acCircle = new Circle();                     \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                     acCircle.SetDatabaseDefaults();                     acCircle.Center = new Point3d(325, -200, 0);                     acCircle.Radius = 25;                     acCircle.Color = color_LightGreen;                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(acCircle);                     tr.AddNewlyCreatedDBObject(acCircle, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot;                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f                     BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c ObjectID \u0431\u043b\u043e\u043a\u0430                     ObjectId btrId = bt[&quot;block-1&quot;];                     \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430                     BlockReference br = new BlockReference(new Point3d(400, -200, 0), btrId);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(br);                     tr.AddNewlyCreatedDBObject(br, true);                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 &quot;block-2&quot;                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c ObjectID \u0431\u043b\u043e\u043a\u0430                     btrId = bt[&quot;block-2&quot;];                     \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ID \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430                     br = new BlockReference(new Point3d(475, -200, 0), btrId);                     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     ms.AppendEntity(br);                     tr.AddNewlyCreatedDBObject(br, true);                      \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u043e\u0439                     db.Clayer = currentLayer;                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     tr.Commit();                 }             }              \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430             public void Initialize()             {                 createLayers();                 createBlock_1();                 createBlock_2();                 layer_0_createObjects();                 layer_1_createObjects();                 layer_2_createObjects();             }              \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f Terminate() \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 IExtensionApplication             public void Terminate()             {              }                           \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/             \/\/ \u041f\u0415\u0420\u0412\u042b\u0419 \u0412\u0410\u0420\u0418\u0410\u041d\u0422 \u0420\u0415\u0410\u041b\u0418\u0417\u0410\u0426\u0418\u0418 \u041f\u041e\u0418\u0421\u041a\u0410 (&lt;&lt;MODEL SPACE&gt;&gt;)             \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c (\u043f\u043e\u0434\u0445\u043e\u0434 1)             [CommandMethod(&quot;Habr_IterateThroughAllObjects_1&quot;)]             public void iterateThroughAllObjects_1()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414                 Database db = HostApplicationServices.WorkingDatabase;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)                     BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);                      \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438                     foreach (ObjectId id in ms)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439 (entity.Layer), \u0442\u0438\u043f (entity.GetType().ToString()) \u0438 \u0446\u0432\u0435\u0442 (entity.Color) \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                         acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                             entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                     }                      tr.Commit();                 }             }              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439 (\u043f\u043e\u0434\u0445\u043e\u0434 1)             [CommandMethod(&quot;Habr_FindCircles_1&quot;)]             public void findCircles_1()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414                 Database db = HostApplicationServices.WorkingDatabase;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)                     BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);                      \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438                     foreach (ObjectId id in ms)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c - \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                          if (entity.GetType() == typeof(Circle))                         {                             acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                                 entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                         }                     }                      tr.Commit();                 }             }              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043f\u043e\u0434\u0445\u043e\u0434 1)             [CommandMethod(&quot;Habr_FindLightGreenObjects_1&quot;)]             public void findLightGreenObjects_1()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414                 Database db = HostApplicationServices.WorkingDatabase;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)                     BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);                      \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438                     foreach (ObjectId id in ms)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                                                  \/\/ \u0435\u0441\u043b\u0438 \u0446\u0432\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u0441\u0430\u043b\u0430\u0442\u043e\u0432\u044b\u0439, \u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                         if (entity.Color == Autodesk.AutoCAD.Colors.Color.FromRgb(128, 255, 64))                         {                             acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                                 entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                         }                     }                      tr.Commit();                 }             }              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 &quot;block-1&quot; (\u043f\u043e\u0434\u0445\u043e\u0434 1)             [CommandMethod(&quot;Habr_FindBlocks_1&quot;)]             public void findBlocks_1()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0411\u0414                 Database db = HostApplicationServices.WorkingDatabase;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (ModelSpace)                     BlockTableRecord ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);                      \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438                     foreach (ObjectId id in ms)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0431\u043b\u043e\u043a\u0430                         if (entity.GetType() == typeof(BlockReference))                         {                             \/\/ \u0435\u0441\u043b\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f - \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u043a \u0442\u0438\u043f\u0443 BlockReference                             BlockReference br = (BlockReference)entity;                              \/\/ \u0435\u0441\u043b\u0438 \u0438\u043c\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 - &quot;block-1&quot;, \u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                             if (br.Name == &quot;block-1&quot;)                             {                                 acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                                     entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                             }                         }                     }                      tr.Commit();                 }             }               \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/             \/\/ \u0412\u0422\u041e\u0420\u041e\u0419 \u0412\u0410\u0420\u0418\u0410\u041d\u0422 \u0420\u0415\u0410\u041b\u0418\u0417\u0410\u0426\u0418\u0418 \u041f\u041e\u0418\u0421\u041a\u0410 (&lt;&lt;EDITOR.SELECTALL&gt;&gt;)             \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c (\u043f\u043e\u0434\u0445\u043e\u0434 2)             [CommandMethod(&quot;Habr_IterateThroughAllObjects_2&quot;)]             public void iterateThroughAllObjects_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                 Editor ed = doc.Editor;                  \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b                 \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!                 PromptSelectionResult selRes = ed.SelectAll();                  \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439                 if (selRes.Status != PromptStatus.OK)                 {                     ed.WriteMessage(&quot;\\nError!\\n&quot;);                     return;                 }                  \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432                 ObjectId[] ids = selRes.Value.GetObjectIds();                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c                     foreach (ObjectId id in ids)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439 (entity.Layer), \u0442\u0438\u043f (entity.GetType().ToString()) \u0438 \u0446\u0432\u0435\u0442 (entity.Color) \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                         acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                             entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                     }                      tr.Commit();                 }             }              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439 (\u043f\u043e\u0434\u0445\u043e\u0434 2)             [CommandMethod(&quot;Habr_FindCircles_2&quot;)]             public void findCircles_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                 Editor ed = doc.Editor;                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 TypedValue[] filterlist = new TypedValue[1];                  \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430                 \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f                 filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;);                                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440                 SelectionFilter filter = new SelectionFilter(filterlist);                  \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!                 PromptSelectionResult selRes = ed.SelectAll(filter);                  \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439                 if (selRes.Status != PromptStatus.OK)                 {                     ed.WriteMessage(&quot;\\nError!\\n&quot;);                     return;                 }                  \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432                 ObjectId[] ids = selRes.Value.GetObjectIds();                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c                     foreach (ObjectId id in ids)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u043b\u043e\u0439, \u0442\u0438\u043f \u0438 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430                         acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage(string.Format(&quot;\\nLayer:{0}; Type:{1}; Color: {2},{3},{4}\\n&quot;,                             entity.Layer, entity.GetType().ToString(), entity.Color.Red.ToString(), entity.Color.Green.ToString(), entity.Color.Blue.ToString()));                     }                      tr.Commit();                 }             }                            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/             \/\/ \u0420\u0415\u0414\u0410\u041a\u0422\u0418\u0420\u041e\u0412\u0410\u041d\u0418\u0415 \u041e\u0411\u042a\u0415\u041a\u0422\u041e\u0412             \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439             [CommandMethod(&quot;Habr_EraseCircles_2&quot;)]             public void eraseCircles_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                 Editor ed = doc.Editor;                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 TypedValue[] filterlist = new TypedValue[1];                  \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430                 \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f                 filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;);                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440                 SelectionFilter filter = new SelectionFilter(filterlist);                  \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!                 PromptSelectionResult selRes = ed.SelectAll(filter);                  \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439                 if (selRes.Status != PromptStatus.OK)                 {                     ed.WriteMessage(&quot;\\nError!\\n&quot;);                     return;                 }                  \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432                 ObjectId[] ids = selRes.Value.GetObjectIds();                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c                     foreach (ObjectId id in ids)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                         entity.UpgradeOpen();                          \/\/ \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442                         entity.Erase();                     }                      tr.Commit();                 }             }               \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u0440\u0430\u0441\u043a\u0438 \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 \u0446\u0432\u0435\u0442             [CommandMethod(&quot;Habr_RepaintOrange_2&quot;)]             public void repaintOrange_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                 Editor ed = doc.Editor;                  \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b                 \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!                 PromptSelectionResult selRes = ed.SelectAll();                  \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439                 if (selRes.Status != PromptStatus.OK)                 {                     ed.WriteMessage(&quot;\\nError!\\n&quot;);                     return;                 }                  \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432                 ObjectId[] ids = selRes.Value.GetObjectIds();                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c                     foreach (ObjectId id in ids)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Entity                         Entity entity = (Entity)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                         entity.UpgradeOpen();                          \/\/ \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439                         entity.Color = Autodesk.AutoCAD.Colors.Color.FromRgb(255, 128, 0);                     }                      tr.Commit();                 }             }               \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0434\u0438\u0443\u0441\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439             [CommandMethod(&quot;Habr_ModifyCircles_2&quot;)]             public void modifyCircles_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                 Editor ed = doc.Editor;                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 TypedValue[] filterlist = new TypedValue[1];                  \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430                 \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;CIRCLE&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f                 filterlist[0] = new TypedValue(0, &quot;CIRCLE&quot;);                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440                 SelectionFilter filter = new SelectionFilter(filterlist);                  \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!                 PromptSelectionResult selRes = ed.SelectAll(filter);                  \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439                 if (selRes.Status != PromptStatus.OK)                 {                     ed.WriteMessage(&quot;\\nError!\\n&quot;);                     return;                 }                  \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432                 ObjectId[] ids = selRes.Value.GetObjectIds();                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c                     foreach (ObjectId id in ids)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 Circle                         Circle cir = (Circle)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                         cir.UpgradeOpen();                                                  \/\/ \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441                         cir.Radius = cir.Radius * 2;                     }                      tr.Commit();                 }             }              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432             [CommandMethod(&quot;Habr_MoveBlocks_2&quot;)]             public void moveBlocks_2()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0411\u0414 \u0438 Editor \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                 Document doc = Application.DocumentManager.MdiActiveDocument;                 Database db = doc.Database;                 Editor ed = doc.Editor;                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 TypedValue[] filterlist = new TypedValue[1];                  \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (0) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430                 \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (&quot;INSERT&quot;) - \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0438\u043f                 filterlist[0] = new TypedValue(0, &quot;INSERT&quot;);                  \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440                 SelectionFilter filter = new SelectionFilter(filterlist);                  \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430                 \/\/ \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u0441 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438!                 PromptSelectionResult selRes = ed.SelectAll(filter);                  \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 - \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u043e \u043d\u0435\u0439                 if (selRes.Status != PromptStatus.OK)                 {                     ed.WriteMessage(&quot;\\nError!\\n&quot;);                     return;                 }                  \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 ID \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432                 ObjectId[] ids = selRes.Value.GetObjectIds();                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction tr = db.TransactionManager.StartTransaction())                 {                     \/\/ &quot;\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c&quot; \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c                     foreach (ObjectId id in ids)                     {                         \/\/ \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a \u0442\u0438\u043f\u0443 BlockReference                         BlockReference br = (BlockReference)tr.GetObject(id, OpenMode.ForRead);                          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c                         br.UpgradeOpen();                          \/\/ \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430                         br.Position = Point3d.Origin;                     }                      tr.Commit();                 }             }                \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/             \/\/ \u0411\u041e\u041d\u0423\u0421\u041d\u042b\u0419 \u0412\u0410\u0420\u0418\u0410\u041d\u0422 \u0420\u0415\u0410\u041b\u0418\u0417\u0410\u0426\u0418\u0418 \u041f\u041e\u0418\u0421\u041a\u0410 (&lt;&lt;\u0427\u0415\u0420\u041d\u0410\u042f \u041c\u0410\u0413\u0418\u042f&gt;&gt;)             \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/              \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c (\u043f\u043e\u0434\u0445\u043e\u0434 3)             \/\/ \u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e! \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f!             [CommandMethod(&quot;Habr_IterateThroughAllObjects_3&quot;)]             public void iterateThroughAllObjects_3()             {                 Database db = HostApplicationServices.WorkingDatabase;                 Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;                 long amount = 0;                 Dictionary&lt;string, int&gt; d = new Dictionary&lt;string, int&gt;();                 ObjectId id = ObjectId.Null;                 for (long i = db.BlockTableId.Handle.Value; i &lt; db.Handseed.Value; i++)                 {                     Handle h = new Handle(i);                     if (db.TryGetObjectId(h, out id) && !id.IsNull && id.IsValid && !id.IsErased)                     {                         string t = id.ObjectClass.DxfName;                         amount++;                         if (d.ContainsKey(t))                             d[t]++;                         else                             d.Add(t, 1);                     }                 }                 foreach (KeyValuePair&lt;string, int&gt; kvp in d)                     ed.WriteMessage(&quot;\\n{0}: {1} &quot;, kvp.Key, kvp.Value);                 ed.WriteMessage(&quot;\\nTotal {0} objects in drawing\\n&quot;, amount);             }         }     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043b\u044e\u0431\u044b\u043c \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/262953\/\"> http:\/\/habrahabr.ru\/post\/262953\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u042d\u0442\u043e \u0448\u0435\u0441\u0442\u0430\u044f \u0447\u0430\u0441\u0442\u044c <a href=\"http:\/\/habrahabr.ru\/post\/235723\/\"><u>\u0446\u0438\u043a\u043b\u0430<\/u><\/a> \u043f\u0440\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f AutoCAD. \u0412 \u043d\u0435\u0439 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435.<\/p>\n<pre><code>public static string disclaimer = &quot;\u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0438 \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 AutoCAD. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.&quot;; <\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-261872","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/261872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=261872"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/261872\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=261872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=261872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=261872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}