Как добавить имя Layout к названию блока

Автор Тема: Как добавить имя Layout к названию блока  (Прочитано 13401 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13894
  • Карма: 1789
  • Рыцарь ObjectARX
  • Skype: rivilis
Что-то у меня возникло ужасное подозрение, что вы подсовываете код компилятору C++. В С# нет никаких проблем с конкатенацией строк.
Всё проще. Установлен какой-то анализатор кодов, который предупреждает, что ему что-то не нравится (но это не ошибка, а предупреждение). Компиляция проходит успешно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Вопрос не только в сборке. Сборка и у меня проходит нормально, но программа выдает ошибку.
Autodesk.AutoCAD.Runtime.Exception: eKeyNotFound
   at Autodesk.AutoCAD.DatabaseServices.SymbolTable.get_Item(String key)
   at ITAT_Autocad.GOST_Titles.DrawM() in E:\Visual Studio\Projects\Recirculation\ITAT_Autocad5\ITAT_Autocad\ITAT_Autocad\GOST_Titles.cs:line 262
   at ITAT_Autocad.GOST_Titles.DrawFormat() in E:\Visual Studio\Projects\Recirculation\ITAT_Autocad5\ITAT_Autocad\ITAT_Autocad\GOST_Titles.cs:line 198
   at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
   at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
   at Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()

Прикладываю код, 262 и 198 строки это и есть имена:
Код - C# [Выбрать]
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Autodesk.AutoCAD.Runtime;
  6. using Autodesk.AutoCAD.ApplicationServices;
  7. using Autodesk.AutoCAD.DatabaseServices;
  8. using Autodesk.AutoCAD.Geometry;
  9. using Autodesk.AutoCAD.EditorInput;
  10. using Autodesk.AutoCAD.Colors;
  11.  
  12. namespace ITAT_Autocad
  13. {
  14.  
  15.    public class Format
  16.    {
  17.       private string formatID;
  18.       private int multiplier;
  19.       private double height;
  20.       private double width;
  21.       private string orientation;
  22.       private string type;
  23.  
  24.  
  25.       public string FormatID { get => formatID; set => formatID=value; }
  26.       public int Multiplier { get => multiplier; set => multiplier=value; }
  27.       public double Height { get => height; set => height=value; }
  28.       public double Width { get => width; set => width=value; }
  29.       public string Orientation { get => orientation; set => orientation=value; }
  30.       public string Type { get => type; set => type=value; }
  31.  
  32.    }
  33.  
  34.    public class GOST_Titles
  35.    {
  36.       static double curWidth;
  37.       static double curHeight;
  38.  
  39.  
  40.       private static Point2d frPoint1;
  41.       private static Point2d frPoint2;
  42.       private static Point2d frPoint3;
  43.       private static Point2d frPoint4;
  44.       private static Point2d keyPoint1;
  45.       private static Point2d keyPoint2;
  46.       private static Point2d keyPoint3;
  47.       private static Point2d keyPoint4;
  48.  
  49.       public static List<Format> listOfFormats = new List<Format>
  50.                                                      {
  51.                                                      new Format { FormatID = "A4", Height = 297, Width = 210 },
  52.                                                      new Format { FormatID = "A3", Height = 420, Width = 297 },
  53.                                                      new Format { FormatID = "A2", Height = 594, Width = 420 },
  54.                                                      new Format { FormatID = "A1", Height = 841, Width = 594 },
  55.                                                      new Format { FormatID = "A0", Height = 1189, Width = 841 }
  56.                                                      };
  57.  
  58.  
  59.       public static Format GetDataFromUser ()
  60.       {
  61.  
  62.          Document acDoc = Application.DocumentManager.MdiActiveDocument;
  63.          //Выбрать формат
  64.          PromptKeywordOptions chFormat = new PromptKeywordOptions("\nChoose format: ");
  65.  
  66.          chFormat.Keywords.Add("A4");
  67.          chFormat.Keywords.Add("A3");
  68.          chFormat.Keywords.Add("A2");
  69.          chFormat.Keywords.Add("A1");
  70.          chFormat.Keywords.Add("A0");
  71.          chFormat.AllowNone=false;
  72.  
  73.          PromptResult formatID = acDoc.Editor.GetKeywords(chFormat);
  74.          //Application.ShowAlertDialog("The name entered was: "+formatID.StringResult);
  75.  
  76.          //Установить кратность
  77.          PromptStringOptions chMultiplier = new PromptStringOptions("\nSet multiplier: ");
  78.          chMultiplier.AllowSpaces=false;
  79.          PromptResult multiplier = acDoc.Editor.GetString(chMultiplier);
  80.  
  81.          // Установить ориентацию
  82.          PromptKeywordOptions chOrient = new PromptKeywordOptions("\nSet orientation: ");
  83.  
  84.          chOrient.Keywords.Add("Portrait");
  85.          chOrient.Keywords.Add("Landscape");
  86.          chOrient.Keywords.Default="Landscape";
  87.          chOrient.AllowNone=false;
  88.  
  89.          PromptResult orientation = acDoc.Editor.GetKeywords(chOrient);
  90.  
  91.          // Установить тип
  92.          PromptKeywordOptions chType = new PromptKeywordOptions("\nSet type: ");
  93.  
  94.          chType.Keywords.Add("Title");
  95.          chType.Keywords.Add("Regular");
  96.          chType.Keywords.Default="Regular";
  97.          chType.AllowNone=false;
  98.  
  99.          PromptResult type = acDoc.Editor.GetKeywords(chType);
  100.  
  101.          Format curFormat = new Format
  102.          {
  103.             FormatID=formatID.StringResult,
  104.             Multiplier=int.Parse(multiplier.StringResult),
  105.             Orientation=orientation.StringResult,
  106.             Type=type.StringResult,
  107.  
  108.          };
  109.          return curFormat;
  110.       }
  111.  
  112.       public static Format inFormat = GetDataFromUser();
  113.  
  114.       [CommandMethod("2InsertTitle")]
  115.       public static void DrawFormat ()
  116.       {
  117.          Format curFormat = inFormat;
  118.  
  119.  
  120.          if ( curFormat.FormatID=="A4" )
  121.          {
  122.             if ( curFormat.Orientation=="Portrait" )
  123.             {
  124.                curHeight=listOfFormats[ 0 ].Height;
  125.                curWidth=listOfFormats[ 0 ].Width*curFormat.Multiplier;
  126.             }
  127.             else
  128.             {
  129.                curHeight=listOfFormats[ 0 ].Width;
  130.                curWidth=listOfFormats[ 0 ].Height;
  131.             }
  132.          }
  133.          if ( curFormat.FormatID=="A3" )
  134.          {
  135.             if ( curFormat.Orientation=="Portrait" )
  136.             {
  137.                curHeight=listOfFormats[ 1 ].Height;
  138.                curWidth=listOfFormats[ 1 ].Width*curFormat.Multiplier;
  139.             }
  140.             else
  141.             {
  142.                curHeight=listOfFormats[ 1 ].Width;
  143.                curWidth=listOfFormats[ 1 ].Height;
  144.             }
  145.          }
  146.          if ( curFormat.FormatID=="A2" )
  147.          {
  148.             if ( curFormat.Orientation=="Portrait" )
  149.             {
  150.                curHeight=listOfFormats[ 2 ].Height;
  151.                curWidth=listOfFormats[ 2 ].Width*curFormat.Multiplier;
  152.             }
  153.             else
  154.             {
  155.                curHeight=listOfFormats[ 2 ].Width;
  156.                curWidth=listOfFormats[ 2 ].Height;
  157.             }
  158.          }
  159.          if ( curFormat.FormatID=="A1" )
  160.          {
  161.             if ( curFormat.Orientation=="Portrait" )
  162.             {
  163.                curHeight=listOfFormats[ 3 ].Height;
  164.                curWidth=listOfFormats[ 3 ].Width*curFormat.Multiplier;
  165.             }
  166.             else
  167.             {
  168.                curHeight=listOfFormats[ 3 ].Width;
  169.                curWidth=listOfFormats[ 3 ].Height;
  170.             }
  171.          }
  172.          if ( curFormat.FormatID=="A0" )
  173.          {
  174.             if ( curFormat.Orientation=="Portrait" )
  175.             {
  176.                curHeight=listOfFormats[ 4 ].Height;
  177.                curWidth=listOfFormats[ 4 ].Width*curFormat.Multiplier;
  178.             }
  179.             else
  180.             {
  181.                curHeight=listOfFormats[ 4 ].Width;
  182.                curWidth=listOfFormats[ 4 ].Height;
  183.             }
  184.          }
  185.  
  186.          frPoint1=new Point2d(-curWidth+5, curHeight-5);
  187.          frPoint2=new Point2d(5, curHeight-5);
  188.          frPoint3=new Point2d(5, -5);
  189.          frPoint4=new Point2d(-curWidth+5, -5);
  190.          keyPoint1=new Point2d(-curWidth+25, curHeight-10);
  191.          keyPoint2=new Point2d(0, curHeight-10);
  192.          keyPoint3=new Point2d(0, 0);
  193.          keyPoint4=new Point2d(-curWidth+25, 0);
  194.  
  195.          if ( curFormat.Type=="Regular" ) { DrawR(); }
  196.          else { DrawM(); }
  197.  
  198.       }
  199.  
  200.       public static void DrawM ()
  201.       {
  202.          Document acDoc = Application.DocumentManager.MdiActiveDocument;
  203.          Database acCurDb = acDoc.Database;
  204.          using ( Transaction acTrans = acCurDb.TransactionManager.StartTransaction() )
  205.          {
  206.             LayerTable acLyrTbl;
  207.             acLyrTbl=acTrans.GetObject(acCurDb.LayerTableId, OpenMode.ForRead) as LayerTable;
  208.  
  209.             string LayerName = "-10-Formats";
  210.  
  211.             if ( acLyrTbl.Has(LayerName)==false )
  212.                using ( LayerTableRecord acLyrTblRec = new LayerTableRecord() )
  213.                {
  214.                   // Assign the layer the ACI color 3 and a name
  215.                   acLyrTblRec.Color=Color.FromColorIndex(ColorMethod.ByAci, 7);
  216.                   acLyrTblRec.Name=LayerName;
  217.  
  218.                   // Upgrade the Layer table for write
  219.                   acLyrTbl.UpgradeOpen();
  220.  
  221.                   // Append the new layer to the Layer table and the transaction
  222.                   acLyrTbl.Add(acLyrTblRec);
  223.                   acTrans.AddNewlyCreatedDBObject(acLyrTblRec, true);
  224.                }
  225.  
  226.             //acCurDb.Clayer=acLyrTbl[ LayerName ];
  227.             BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
  228.  
  229.             ObjectId blkRecId = ObjectId.Null;
  230.  
  231.             if ( !acBlkTbl.Has("MainTitle") )
  232.             {
  233.                BlockTableRecord acBlkTblRec = new BlockTableRecord();
  234.                acBlkTblRec.Name="MainTitle";
  235.  
  236.                // Set the insertion point for the block
  237.                acBlkTblRec.Origin=new Point3d(0, 0, 0);
  238.                acBlkTbl.UpgradeOpen();
  239.                acBlkTbl.Add(acBlkTblRec);
  240.                acTrans.AddNewlyCreatedDBObject(acBlkTblRec, true);
  241.  
  242.                //Draw frontiers of format
  243.                DrawFrames(acTrans, acBlkTblRec);
  244.  
  245.                //Draw upper title of format
  246.                DrawUpperTitle(acTrans, acBlkTbl, acBlkTblRec, inFormat);
  247.  
  248.                //Draw main title of format
  249.                DrawMainTitle(acTrans, acBlkTbl, acBlkTblRec);
  250.  
  251.                //DrawRegularTitle(acTrans, acBlkTbl, acBlkTblRec);
  252.  
  253.                DrawSideTitle(acTrans, acBlkTbl, acBlkTblRec);
  254.  
  255.  
  256.                blkRecId=acBlkTblRec.Id;
  257.             }
  258.             else
  259.             {
  260.                blkRecId=acBlkTbl[ "MainTitle"+" "+LayoutManager.Current.CurrentLayout];
  261.             }
  262.  
  263.             // Insert the block into the current space
  264.             if ( blkRecId!=ObjectId.Null )
  265.             {
  266.                BlockTableRecord acBlkTblRec;
  267.                acBlkTblRec=acTrans.GetObject(blkRecId, OpenMode.ForRead) as BlockTableRecord;
  268.  
  269.                // Create and insert the new block reference
  270.                BlockReference acBlkRef = new BlockReference(acBlkTblRec.Origin, blkRecId);
  271.                acBlkRef.SetDatabaseDefaults();
  272.  
  273.                BlockTableRecord acCurSpaceBlkTblRec;
  274.                acCurSpaceBlkTblRec=
  275.                acTrans.GetObject(acCurDb.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
  276.  
  277.                acCurSpaceBlkTblRec.AppendEntity(acBlkRef);
  278.                acTrans.AddNewlyCreatedDBObject(acBlkRef, true);
  279.  
  280.                // Verify block table record has attribute definitions associated with it
  281.                if ( acBlkTblRec.HasAttributeDefinitions )
  282.                   foreach ( ObjectId objID in acBlkTblRec )
  283.                   {
  284.                      DBObject dbObj = acTrans.GetObject(objID, OpenMode.ForRead);
  285.  
  286.                      if ( dbObj is AttributeDefinition )
  287.                      {
  288.                         AttributeDefinition acAtt = dbObj as AttributeDefinition;
  289.  
  290.                         if ( !acAtt.Constant )
  291.                         {
  292.                            AttributeReference acAttRef = new AttributeReference();
  293.                            acAttRef.SetAttributeFromBlock(acAtt, acBlkRef.BlockTransform);
  294.                            //acAttRef.Position = acAtt.Position.TransformBy(acBlkRef.BlockTransform);
  295.                            acAttRef.TextString=acAtt.TextString;
  296.                            acBlkRef.AttributeCollection.AppendAttribute(acAttRef);
  297.                            acTrans.AddNewlyCreatedDBObject(acAttRef, true);
  298.                         }
  299.                      }
  300.                   }
  301.             }
  302.  
  303.             // Save the new object to the database
  304.             acTrans.Commit();
  305.          }
  306.       }
  307.       public static void DrawR ()
  308.       {
  309.          Document acDoc = Application.DocumentManager.MdiActiveDocument;
  310.          Database acCurDb = acDoc.Database;
  311.          using ( Transaction acTrans = acCurDb.TransactionManager.StartTransaction() )
  312.          {
  313.             LayerTable acLyrTbl;
  314.             acLyrTbl=acTrans.GetObject(acCurDb.LayerTableId, OpenMode.ForRead) as LayerTable;
  315.  
  316.             string LayerName = "-10-Formats";
  317.  
  318.             if ( acLyrTbl.Has(LayerName)==false )
  319.                using ( LayerTableRecord acLyrTblRec = new LayerTableRecord() )
  320.                {
  321.                   // Assign the layer the ACI color 3 and a name
  322.                   acLyrTblRec.Color=Color.FromColorIndex(ColorMethod.ByAci, 7);
  323.                   acLyrTblRec.Name=LayerName;
  324.  
  325.                   // Upgrade the Layer table for write
  326.                   acLyrTbl.UpgradeOpen();
  327.  
  328.                   // Append the new layer to the Layer table and the transaction
  329.                   acLyrTbl.Add(acLyrTblRec);
  330.                   acTrans.AddNewlyCreatedDBObject(acLyrTblRec, true);
  331.                }
  332.  
  333.             //acCurDb.Clayer=acLyrTbl[ LayerName ];
  334.             BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
  335.  
  336.             ObjectId blkRecId = ObjectId.Null;
  337.  
  338.             if ( !acBlkTbl.Has("RegularTitle") )
  339.             {
  340.                BlockTableRecord acBlkTblRec = new BlockTableRecord();
  341.                acBlkTblRec.Name="RegularTitle";
  342.  
  343.                // Set the insertion point for the block
  344.                acBlkTblRec.Origin=new Point3d(0, 0, 0);
  345.                acBlkTbl.UpgradeOpen();
  346.                acBlkTbl.Add(acBlkTblRec);
  347.                acTrans.AddNewlyCreatedDBObject(acBlkTblRec, true);
  348.  
  349.                //Draw frontiers of format
  350.                DrawFrames(acTrans, acBlkTblRec);
  351.  
  352.                //Draw upper title of format
  353.                DrawUpperTitle(acTrans, acBlkTbl, acBlkTblRec, inFormat);
  354.  
  355.                //Draw main title of format
  356.                //DrawMainTitle(acTrans, acBlkTbl, acBlkTblRec);
  357.                DrawRegularTitle(acTrans, acBlkTbl, acBlkTblRec);
  358.                DrawSideTitle(acTrans, acBlkTbl, acBlkTblRec);
  359.  
  360.                blkRecId=acBlkTblRec.Id;
  361.             }
  362.             else
  363.             {
  364.                blkRecId=acBlkTbl[ "RegularTitle" + " " + LayoutManager.Current.CurrentLayout];
  365.             }
  366.  
  367.             // Insert the block into the current space
  368.             if ( blkRecId!=ObjectId.Null )
  369.             {
  370.                BlockTableRecord acBlkTblRec;
  371.                acBlkTblRec=acTrans.GetObject(blkRecId, OpenMode.ForRead) as BlockTableRecord;
  372.  
  373.                // Create and insert the new block reference
  374.                BlockReference acBlkRef = new BlockReference(acBlkTblRec.Origin, blkRecId);
  375.                acBlkRef.SetDatabaseDefaults();
  376.  
  377.                BlockTableRecord acCurSpaceBlkTblRec;
  378.                acCurSpaceBlkTblRec=
  379.                acTrans.GetObject(acCurDb.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
  380.  
  381.                acCurSpaceBlkTblRec.AppendEntity(acBlkRef);
  382.                acTrans.AddNewlyCreatedDBObject(acBlkRef, true);
  383.  
  384.                // Verify block table record has attribute definitions associated with it
  385.                if ( acBlkTblRec.HasAttributeDefinitions )
  386.                   foreach ( ObjectId objID in acBlkTblRec )
  387.                   {
  388.                      DBObject dbObj = acTrans.GetObject(objID, OpenMode.ForRead);
  389.  
  390.                      if ( dbObj is AttributeDefinition )
  391.                      {
  392.                         AttributeDefinition acAtt = dbObj as AttributeDefinition;
  393.  
  394.                         if ( !acAtt.Constant )
  395.                         {
  396.                            AttributeReference acAttRef = new AttributeReference();
  397.                            acAttRef.SetAttributeFromBlock(acAtt, acBlkRef.BlockTransform);
  398.                            //acAttRef.Position = acAtt.Position.TransformBy(acBlkRef.BlockTransform);
  399.                            acAttRef.TextString=acAtt.TextString;
  400.                            acBlkRef.AttributeCollection.AppendAttribute(acAttRef);
  401.                            acTrans.AddNewlyCreatedDBObject(acAttRef, true);
  402.                         }
  403.                      }
  404.                   }
  405.             }
  406.  
  407.             // Save the new object to the database
  408.             acTrans.Commit();
  409.          }
  410.       }
  411.  
  412.       public static void DrawMainTitle ( Transaction acTrans, BlockTable acBlkTbl, BlockTableRecord acBlkTblRec )
  413.       {
  414.          тут код метода  
  415.       }
  416.  
  417.       public static void DrawRegularTitle ( Transaction acTrans, BlockTable acBlkTbl, BlockTableRecord acBlkTblRec )
  418.       {
  419.          тут код метода  
  420.       }
  421.  
  422.       public static void DrawUpperTitle ( Transaction acTrans, BlockTable acBlkTbl, BlockTableRecord acBlkTblRec, Format inFormat )
  423.       {
  424.          Format initFormat = new Format()
  425.          {
  426.             Orientation=inFormat.Orientation,
  427.             Multiplier=inFormat.Multiplier,
  428.          };
  429.  
  430.          if ( initFormat.Orientation=="Portrait"&&initFormat.Multiplier==1 )
  431.          {
  432.            тут код метода  
  433.          }
  434.          }
  435.          else
  436.          {
  437.            тут код метода  
  438.          }
  439.          }
  440.       }
  441.  
  442.       public static void DrawSideTitle ( Transaction acTrans, BlockTable acBlkTbl, BlockTableRecord acBlkTblRec )
  443.       {
  444.          тут код метода  
  445.       }
  446.  
  447.       public static void DrawFrames ( Transaction acTrans, BlockTableRecord acBlkTblRec )
  448.       {
  449.          тут код метода  
  450.       }
  451.  
  452.    }
  453.  
  454. }

Отмечено как Решение Atomohod 01-06-2018, 20:57:44

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13894
  • Карма: 1789
  • Рыцарь ObjectARX
  • Skype: rivilis
Atomohod,
А ты не догадываешься, что и вместо этого нужно записать что-то другое:
Код - C# [Выбрать]
  1. if ( !acBlkTbl.Has("MainTitle") )
Например,
Код - C# [Выбрать]
  1. if ( !acBlkTbl.Has("MainTitle"+" "+LayoutManager.Current.CurrentLayout) )
Ну и дальше по коду аналогичные замены...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
if ( !acBlkTbl.Has("MainTitle") )
Прошу пояснить, почему так нельзя записать ведь сначала мы проверяем на наличие блока с таким именем и только в случае совпадения добавляем к имени название Layout. а один, первый блок с таким названием вполне может быть? Спрашиваю не ради спора, просто пытаюсь разобраться.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13894
  • Карма: 1789
  • Рыцарь ObjectARX
  • Skype: rivilis
Прошу пояснить
Я даже не знаю как такое можно объяснить. В твоём коде ты создаёшь только блок "MainTitle", но нигде не создаёшь блок с именем "MainTitle"+" "+LayoutManager.Current.CurrentLayout. И как же ты можешь пытаться найти ObjectId для блока с именем "MainTitle"+" "+LayoutManager.Current.CurrentLayout если его в чертеже нет?
Код - C# [Выбрать]
  1. blkRecId=acBlkTbl[ "MainTitle"+" "+LayoutManager.Current.CurrentLayout];
Там еще и с "RegularTitle" аналогичная ерунда.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
его в чертеже нет
в случае первого запуска команды да, его нет он как раз создается, но при повторном вызове команды блок, как результат работы команды в момент ее первого запуска, уже присутствует в чертеже?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13894
  • Карма: 1789
  • Рыцарь ObjectARX
  • Skype: rivilis
но при повторном вызове команды блок, как результат работы команды в момент ее первого запуска, уже присутствует в чертеже?
Я не вижу в твоём коде создания блока с именем "MainTitle"+" "+LayoutManager.Current.CurrentLayout. У тебя есть код, который создаёт блок "MainTitle".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
ОК, попробую переосмыслить заново.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
А мне $ больше нравится
Код - C# [Выбрать]
  1. blkRecId=acBlkTbl[ $"MainTitle {LayoutManager.Current.CurrentLayout}"];
« Последнее редактирование: 01-06-2018, 11:21:37 от Александр Ривилис »

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Спасибо всем, вопрос решен!