Изменение параметров чертежа

Автор Тема: Изменение параметров чертежа  (Прочитано 8211 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Добрый день!
Появился вопрос, каким образом можно сформировать транзакцию для изменения параметров чертежа? Видел тут такой пример https://adn-cis.org/parametryi-chertezha-dwg.html, но хочу повторить это на C#. 

Код - C# [Выбрать]
  1. using Autodesk.Civil.ApplicationServices;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3. using Autodesk.AutoCAD.DatabaseServices;
  4. namespace Civil3D_DrawingProperties
  5. {
  6.    public class C3D_Extensions_Terno
  7.    {  
  8.       //Нод для смены системы единиц на метрическую
  9.       public static void ChangeDrawingUnitsToMeters(bool condition_meters)
  10.       {
  11.          //На вход подается условие - нужны ли метр, если false - то работает данный метод (if далее)
  12.          Document m_Doc = Application.DocumentManager.MdiActiveDocument;
  13.          Database db = m_Doc.Database;
  14.          //Они сами по себе, а строки ниже - сами по себе, это верно?!
  15.  
  16.          CivilDocument c3d_doc = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument;
  17.          var Units_Window = c3d_doc.Settings.DrawingSettings;
  18.  
  19.          //Инициация изменяемых переменных
  20.          var _DrawingUnits = Units_Window.UnitZoneSettings.DrawingUnits;
  21.          var _AngularUnits = Units_Window.UnitZoneSettings.AngularUnits;
  22.          var _ImperialToMetricConversion = Units_Window.UnitZoneSettings.ImperialToMetricConversion;
  23.          var _ScaleObjectsFromOtherDrawings = Units_Window.UnitZoneSettings.ScaleObjectsFromOtherDrawings;
  24.          var _MatchAutoCADVariables = Units_Window.UnitZoneSettings.MatchAutoCADVariables;
  25.          var _DrawingScale = Units_Window.UnitZoneSettings.DrawingScale;
  26.          var _DrivingDirection = Units_Window.AmbientSettings.General.DrivingDirection.Value;
  27.          var _Time = Units_Window.AmbientSettings.Time.Unit.Value;
  28.          var _Distance = Units_Window.AmbientSettings.Distance.Unit.Value;
  29.          var _Dimension = Units_Window.AmbientSettings.Dimension.Unit.Value;
  30.          var _Coordinate = Units_Window.AmbientSettings.Coordinate.Unit.Value;
  31.          var _GridCoordinate = Units_Window.AmbientSettings.GridCoordinate.Unit.Value;
  32.          var _Elevation = Units_Window.AmbientSettings.Elevation.Unit.Value;
  33.          var _Area = Units_Window.AmbientSettings.Area.Unit.Value;
  34.          var _Volume = Units_Window.AmbientSettings.Volume.Unit.Value;
  35.          var _Speed = Units_Window.AmbientSettings.Speed.Unit.Value;
  36.          var _Angle = Units_Window.AmbientSettings.Angle.Unit.Value;
  37.          var _Direction = Units_Window.AmbientSettings.Direction.Unit.Value;
  38.          var _LatLong = Units_Window.AmbientSettings.LatLong.Unit.Value;
  39.          var _Grade = Units_Window.AmbientSettings.Grade.Format.Value;
  40.          var _Slope = Units_Window.AmbientSettings.Slope.Format.Value;
  41.          var _GradeSlope = Units_Window.AmbientSettings.GradeSlope.Format.Value;
  42.          var _Station = Units_Window.AmbientSettings.Station.Unit.Value;
  43.          var _Acceleration = Units_Window.AmbientSettings.Acceleration.Unit.Value;
  44.          var _Pressure = Units_Window.AmbientSettings.Pressure.Unit.Value;
  45.  
  46.          if (condition_meters == false)
  47.          {
  48.             //using (Transaction m_Tr = db.TransactionManager.StartTransaction()) //
  49.             using (Transaction tr = db.TransactionManager.StartTransaction())
  50.             {
  51.  
  52.                _DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Meters; //2
  53.                _AngularUnits = Autodesk.Civil.AngleUnitType.Degree; //179
  54.                _ImperialToMetricConversion = Autodesk.Civil.Settings.ImperialToMetricConversionType.InternationalFoot; //536870912;
  55.                _ScaleObjectsFromOtherDrawings = true;
  56.                _MatchAutoCADVariables = true;
  57.                _DrawingScale = Units_Window.UnitZoneSettings.DrawingScale = 1;// 1.0;
  58.                _DrivingDirection = Autodesk.Civil.DrivingDirectionType.RightSideOfTheRoad;// 0;
  59.                _Time = Autodesk.Civil.TimeUnitType.Minute;//301;
  60.                _Distance = Autodesk.Civil.LinearUnitType.Meter;// 2;
  61.                _Dimension = Autodesk.Civil.LinearUnitType.Meter;// 2;
  62.                _Coordinate = Autodesk.Civil.LinearUnitType.Meter;// 2;
  63.                _GridCoordinate = Autodesk.Civil.LinearUnitType.Meter; // 2;
  64.                _Elevation = Autodesk.Civil.LinearUnitType.Meter; // 2;
  65.                _Area = Autodesk.Civil.AreaUnitType.SquareMeter; //55;
  66.                _Volume = Autodesk.Civil.VolumeUnitType.CubicMeter;// 96;
  67.                _Speed = Autodesk.Civil.SpeedUnitType.KilometerPerHour;// 190;
  68.                _Angle = Autodesk.Civil.AngleUnitType.Degree;// 179;
  69.                _Direction = Autodesk.Civil.AngleUnitType.Degree;// 179;
  70.                _LatLong = Autodesk.Civil.AngleUnitType.Degree;// 179;
  71.                _Grade = Autodesk.Civil.GradeFormatType.Decimal;// 2468;
  72.                _Slope = Autodesk.Civil.SlopeFormatType.RiseRun;// 2465;
  73.                _GradeSlope = Autodesk.Civil.GradeSlopeFormatType.Decimal;// 2468;
  74.                _Station = Autodesk.Civil.LinearUnitType.Meter;// 2;
  75.                _Acceleration = Autodesk.Civil.AccelerationUnitType.MeterPerSecSquared;// 202;
  76.                _Pressure = Autodesk.Civil.PressureUnitType.Kilopascal;// 240;
  77.                tr.Commit();
  78.             }
  79.          }
  80.          else
  81.          {
  82.             using (Transaction tr = db.TransactionManager.StartTransaction())
  83.             {
  84.                _DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Feet; //30
  85.                _AngularUnits = Autodesk.Civil.AngleUnitType.Degree; //179
  86.                _ImperialToMetricConversion = Autodesk.Civil.Settings.ImperialToMetricConversionType.InternationalFoot; //536870912;
  87.                _ScaleObjectsFromOtherDrawings = false;
  88.                _MatchAutoCADVariables = false;
  89.                _DrawingScale = Units_Window.UnitZoneSettings.DrawingScale = 1;// 1.0;
  90.                _DrivingDirection = Autodesk.Civil.DrivingDirectionType.RightSideOfTheRoad;// 0;
  91.                _Time = Autodesk.Civil.TimeUnitType.Minute;//301;
  92.                _Distance = Autodesk.Civil.LinearUnitType.Foot;// 30;
  93.                _Dimension = Autodesk.Civil.LinearUnitType.Inch;// 31;
  94.                _Coordinate = Autodesk.Civil.LinearUnitType.Foot;// 30;
  95.                _GridCoordinate = Autodesk.Civil.LinearUnitType.Foot;// 30;
  96.                _Elevation = Autodesk.Civil.LinearUnitType.Foot;// 30;
  97.                _Area = Autodesk.Civil.AreaUnitType.SquareFoot; //56;
  98.                _Volume = Autodesk.Civil.VolumeUnitType.CubicYard;// 153;
  99.                _Speed = Autodesk.Civil.SpeedUnitType.MilePerHour;// 196;
  100.                _Angle = Autodesk.Civil.AngleUnitType.Degree;// 179;
  101.                _Direction = Autodesk.Civil.AngleUnitType.Degree;// 179;
  102.                _LatLong = Autodesk.Civil.AngleUnitType.Degree;// 179;
  103.                _Grade = Autodesk.Civil.GradeFormatType.Percent;// 2467;
  104.                _Slope = Autodesk.Civil.SlopeFormatType.RunRise;// 2466;
  105.                _GradeSlope = Autodesk.Civil.GradeSlopeFormatType.Percent;// 2467;
  106.                _Station = Autodesk.Civil.LinearUnitType.Foot;// 2;
  107.                _Acceleration = Autodesk.Civil.AccelerationUnitType.FootPerSecSquared;// 203;
  108.                _Pressure = Autodesk.Civil.PressureUnitType.PoundPerSquareInch;// 242;
  109.                tr.Commit();
  110.             }
  111.          }
  112.          
  113.       }
  114.    }
  115. }
Собственно, как я понял параметры чертежа берутся из конструкции
Код - C# [Выбрать]
  1.          CivilDocument c3d_doc = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument;
  2.          var Units_Window = c3d_doc.Settings.DrawingSettings;

А стандартное обращение к чертежу здесь получается что-ли не к месту (кроме транзакции которая делается через Database)

Код - C# [Выбрать]
  1.          Document m_Doc = Application.DocumentManager.MdiActiveDocument;
  2.          Database db = m_Doc.Database;

Такое дело возвращает собственно "ноль" при выполнении его в среде Dynamo:

Примечание: Входное условие "bool condition_meters" нужно для логичного вписывания метода в структуру Dynamo
Ниже, собственно, другой метод который получает этот параметр:
Код - C# [Выбрать]
  1.       public static bool CheckDrawingUnitsToEqualMeter(string Project_Units_str)
  2.       {
  3.          bool condition_meters;
  4.          if (Project_Units_str == "Feet") condition_meters = false;
  5.          else condition_meters = true;
  6.          return condition_meters;
  7.       }



« Последнее редактирование: 04-11-2020, 16:47:56 от Александр Ривилис »

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменение параметров чертежа
« Ответ #1 : 04-11-2020, 16:50:58 »
Georg,
Пять раз перечитал, но так и не понял в чем вопрос.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Re: Изменение параметров чертежа
« Ответ #2 : 04-11-2020, 17:06:21 »
Тогда, сформулирую проще - как сделать так, чтобы метод работал?
Чтобы изменения сделанные в теле IF записывались в чертеж?

И корректно ли вообще переназначать так значения системных параметров чертежа - сомнения мучают ... смотреть через Units_Window.UnitZoneSettings..., а менять через Autodesk.Civil.Settings

Отмечено как Решение Georg 04-11-2020, 17:48:43

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменение параметров чертежа
« Ответ #3 : 04-11-2020, 17:13:23 »
_DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Feet; //30
Вместо
Код - C# [Выбрать]
  1. _DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Feet; //30
должно быть
Код - C# [Выбрать]
  1. Units_Window.UnitZoneSettings.DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Feet; //30
Ну и так далее. Ты же в своём коде просто меняешь значения переменных, а не свойства чертежа.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Re: Изменение параметров чертежа
« Ответ #4 : 04-11-2020, 17:37:28 »
Спасибо!
Да, проверил, работает теперь.  Я, получается, лишь считывал значения системных параметров в переменные, которым менял значения а обратно не возвращал.
Есть еще пара вопросов по данной теме (хоть это и отходит от концепции "1 вопрос - одна тема"
1. Можно ли как-то оптимизировать (сократить) не используя в "да" и "нет" повторного вызова функций?

Код - C# [Выбрать]
  1. if (condition_meters == false)
  2.                         {
  3.                                 using (Transaction tr = db.TransactionManager.StartTransaction())
  4.                                 {
  5.  
  6.                                         Units_Window.UnitZoneSettings.DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Meters; //2
  7.                                         Units_Window.UnitZoneSettings.AngularUnits = Autodesk.Civil.AngleUnitType.Degree; //179
  8.                                         Units_Window.UnitZoneSettings.ImperialToMetricConversion = Autodesk.Civil.Settings.ImperialToMetricConversionType.InternationalFoot; //536870912;
  9.                                         Units_Window.UnitZoneSettings.ScaleObjectsFromOtherDrawings = true;
  10.                                         Units_Window.UnitZoneSettings.MatchAutoCADVariables = true;
  11.                                         Units_Window.UnitZoneSettings.DrawingScale = 1.0;// 1.0
  12.                                         Units_Window.AmbientSettings.General.DrivingDirection.Value = Autodesk.Civil.DrivingDirectionType.RightSideOfTheRoad;// 0;
  13.                                         Units_Window.AmbientSettings.Time.Unit.Value = Autodesk.Civil.TimeUnitType.Minute;//301;
  14.                                         Units_Window.AmbientSettings.Distance.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  15.                                         Units_Window.AmbientSettings.Dimension.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  16.                                         Units_Window.AmbientSettings.Coordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  17.                                         Units_Window.AmbientSettings.GridCoordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Meter; // 2;
  18.                                         Units_Window.AmbientSettings.Elevation.Unit.Value = Autodesk.Civil.LinearUnitType.Meter; // 2;
  19.                                         Units_Window.AmbientSettings.Area.Unit.Value = Autodesk.Civil.AreaUnitType.SquareMeter; //55;
  20.                                         Units_Window.AmbientSettings.Volume.Unit.Value = Autodesk.Civil.VolumeUnitType.CubicMeter;// 96;
  21.                                         Units_Window.AmbientSettings.Speed.Unit.Value = Autodesk.Civil.SpeedUnitType.KilometerPerHour;// 190;
  22.                                         Units_Window.AmbientSettings.Angle.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  23.                                         Units_Window.AmbientSettings.Direction.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  24.                                         Units_Window.AmbientSettings.LatLong.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  25.                                         Units_Window.AmbientSettings.Grade.Format.Value = Autodesk.Civil.GradeFormatType.Decimal;// 2468;
  26.                                         Units_Window.AmbientSettings.Slope.Format.Value = Autodesk.Civil.SlopeFormatType.RiseRun;// 2465;
  27.                                         Units_Window.AmbientSettings.GradeSlope.Format.Value = Autodesk.Civil.GradeSlopeFormatType.Decimal;// 2468;
  28.                                         Units_Window.AmbientSettings.Station.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  29.                                         Units_Window.AmbientSettings.Acceleration.Unit.Value = Autodesk.Civil.AccelerationUnitType.MeterPerSecSquared;// 202;
  30.                                         Units_Window.AmbientSettings.Pressure.Unit.Value = Autodesk.Civil.PressureUnitType.Kilopascal;// 240;
  31.                                         tr.Commit();
  32.                                 }
  33.                         }
  34.                         else
  35.                         {
  36.                                 using (Transaction tr = db.TransactionManager.StartTransaction())
  37.                                 {
  38.                                         Units_Window.UnitZoneSettings.DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Feet; //30
  39.                                         Units_Window.UnitZoneSettings.AngularUnits = Autodesk.Civil.AngleUnitType.Degree; //179
  40.                                         Units_Window.UnitZoneSettings.ImperialToMetricConversion = Autodesk.Civil.Settings.ImperialToMetricConversionType.InternationalFoot; //536870912;
  41.                                         Units_Window.UnitZoneSettings.ScaleObjectsFromOtherDrawings = false;
  42.                                         Units_Window.UnitZoneSettings.MatchAutoCADVariables = false;
  43.                                         Units_Window.UnitZoneSettings.DrawingScale = 1.0;// 1.0; ???
  44.                                         Units_Window.AmbientSettings.General.DrivingDirection.Value = Autodesk.Civil.DrivingDirectionType.RightSideOfTheRoad;// 0;
  45.                                         Units_Window.AmbientSettings.Time.Unit.Value = Autodesk.Civil.TimeUnitType.Minute;//301;
  46.                                         Units_Window.AmbientSettings.Distance.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  47.                                         Units_Window.AmbientSettings.Dimension.Unit.Value = Autodesk.Civil.LinearUnitType.Inch;// 31;
  48.                                         Units_Window.AmbientSettings.Coordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  49.                                         Units_Window.AmbientSettings.GridCoordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  50.                                         Units_Window.AmbientSettings.Elevation.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  51.                                         Units_Window.AmbientSettings.Area.Unit.Value = Autodesk.Civil.AreaUnitType.SquareFoot; //56;
  52.                                         Units_Window.AmbientSettings.Volume.Unit.Value = Autodesk.Civil.VolumeUnitType.CubicYard;// 153;
  53.                                         Units_Window.AmbientSettings.Speed.Unit.Value = Autodesk.Civil.SpeedUnitType.MilePerHour;// 196;
  54.                                         Units_Window.AmbientSettings.Angle.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  55.                                         Units_Window.AmbientSettings.Direction.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  56.                                         Units_Window.AmbientSettings.LatLong.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  57.                                         Units_Window.AmbientSettings.Grade.Format.Value = Autodesk.Civil.GradeFormatType.Percent;// 2467;
  58.                                         Units_Window.AmbientSettings.Slope.Format.Value = Autodesk.Civil.SlopeFormatType.RunRise;// 2466;
  59.                                         Units_Window.AmbientSettings.GradeSlope.Format.Value = Autodesk.Civil.GradeSlopeFormatType.Percent;// 2467;
  60.                                         Units_Window.AmbientSettings.Station.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 2;
  61.                                         Units_Window.AmbientSettings.Acceleration.Unit.Value = Autodesk.Civil.AccelerationUnitType.FootPerSecSquared;// 203;
  62.                                         Units_Window.AmbientSettings.Pressure.Unit.Value = Autodesk.Civil.PressureUnitType.PoundPerSquareInch;// 242;
  63.                                         tr.Commit();
  64.                                 }
Возможно, за это отвечает структура "this"? Я видел такие в чужих dll .. но не хватает пока скилла это применять
2. У меня идет обращение к Autodesk.Civil.Settings.DrawingUnitType.Feet, которое имеет численный код "30" - то есть я могу присваивать в отместку его а не директивами, а есть ли где-то открытый "кодификатор" этих чисел - ID параметров? Для упрощения в дальнейшем

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменение параметров чертежа
« Ответ #5 : 04-11-2020, 17:42:52 »
Я, получается, лишь считывал значения системных параметров в переменные, которым менял значения а обратно не возвращал.
Именно так. Видимо ты не понял смысла конструкции With в VBA/VB.NET
2. У меня идет обращение к Autodesk.Civil.Settings.DrawingUnitType.Feet, которое имеет численный код "30" - то есть я могу присваивать в отместку его а не директивами, а есть ли где-то открытый "кодификатор" этих чисел - ID параметров? Для упрощения в дальнейшем
Вот не надо этого. А если разработчики в очередной версии Civil 3D изменят это число?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Re: Изменение параметров чертежа
« Ответ #6 : 04-11-2020, 17:49:06 »
Всё-всё, спасибо, понял!

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменение параметров чертежа
« Ответ #7 : 04-11-2020, 18:09:45 »
Georg,
Это конечно твоё дело, но я бы изменил величину табуляции у тебя в редакторе Visual Studio. Максимум 4, а лучше 2:
Код - C# [Выбрать]
  1. using (Transaction tr = db.TransactionManager.StartTransaction())
  2. {
  3.   if (condition_meters == false)
  4.   {
  5.     Units_Window.UnitZoneSettings.DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Meters; //2
  6.     Units_Window.UnitZoneSettings.AngularUnits = Autodesk.Civil.AngleUnitType.Degree; //179
  7.     Units_Window.UnitZoneSettings.ImperialToMetricConversion = Autodesk.Civil.Settings.ImperialToMetricConversionType.InternationalFoot; //536870912;
  8.     Units_Window.UnitZoneSettings.ScaleObjectsFromOtherDrawings = true;
  9.     Units_Window.UnitZoneSettings.MatchAutoCADVariables = true;
  10.     Units_Window.UnitZoneSettings.DrawingScale = 1.0;// 1.0
  11.     Units_Window.AmbientSettings.General.DrivingDirection.Value = Autodesk.Civil.DrivingDirectionType.RightSideOfTheRoad;// 0;
  12.     Units_Window.AmbientSettings.Time.Unit.Value = Autodesk.Civil.TimeUnitType.Minute;//301;
  13.     Units_Window.AmbientSettings.Distance.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  14.     Units_Window.AmbientSettings.Dimension.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  15.     Units_Window.AmbientSettings.Coordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  16.     Units_Window.AmbientSettings.GridCoordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Meter; // 2;
  17.     Units_Window.AmbientSettings.Elevation.Unit.Value = Autodesk.Civil.LinearUnitType.Meter; // 2;
  18.     Units_Window.AmbientSettings.Area.Unit.Value = Autodesk.Civil.AreaUnitType.SquareMeter; //55;
  19.     Units_Window.AmbientSettings.Volume.Unit.Value = Autodesk.Civil.VolumeUnitType.CubicMeter;// 96;
  20.     Units_Window.AmbientSettings.Speed.Unit.Value = Autodesk.Civil.SpeedUnitType.KilometerPerHour;// 190;
  21.     Units_Window.AmbientSettings.Angle.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  22.     Units_Window.AmbientSettings.Direction.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  23.     Units_Window.AmbientSettings.LatLong.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  24.     Units_Window.AmbientSettings.Grade.Format.Value = Autodesk.Civil.GradeFormatType.Decimal;// 2468;
  25.     Units_Window.AmbientSettings.Slope.Format.Value = Autodesk.Civil.SlopeFormatType.RiseRun;// 2465;
  26.     Units_Window.AmbientSettings.GradeSlope.Format.Value = Autodesk.Civil.GradeSlopeFormatType.Decimal;// 2468;
  27.     Units_Window.AmbientSettings.Station.Unit.Value = Autodesk.Civil.LinearUnitType.Meter;// 2;
  28.     Units_Window.AmbientSettings.Acceleration.Unit.Value = Autodesk.Civil.AccelerationUnitType.MeterPerSecSquared;// 202;
  29.     Units_Window.AmbientSettings.Pressure.Unit.Value = Autodesk.Civil.PressureUnitType.Kilopascal;// 240;
  30.   }
  31.   else
  32.   {
  33.     Units_Window.UnitZoneSettings.DrawingUnits = Autodesk.Civil.Settings.DrawingUnitType.Feet; //30
  34.     Units_Window.UnitZoneSettings.AngularUnits = Autodesk.Civil.AngleUnitType.Degree; //179
  35.     Units_Window.UnitZoneSettings.ImperialToMetricConversion = Autodesk.Civil.Settings.ImperialToMetricConversionType.InternationalFoot; //536870912;
  36.     Units_Window.UnitZoneSettings.ScaleObjectsFromOtherDrawings = false;
  37.     Units_Window.UnitZoneSettings.MatchAutoCADVariables = false;
  38.     Units_Window.UnitZoneSettings.DrawingScale = 1.0;// 1.0; ???
  39.     Units_Window.AmbientSettings.General.DrivingDirection.Value = Autodesk.Civil.DrivingDirectionType.RightSideOfTheRoad;// 0;
  40.     Units_Window.AmbientSettings.Time.Unit.Value = Autodesk.Civil.TimeUnitType.Minute;//301;
  41.     Units_Window.AmbientSettings.Distance.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  42.     Units_Window.AmbientSettings.Dimension.Unit.Value = Autodesk.Civil.LinearUnitType.Inch;// 31;
  43.     Units_Window.AmbientSettings.Coordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  44.     Units_Window.AmbientSettings.GridCoordinate.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  45.     Units_Window.AmbientSettings.Elevation.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 30;
  46.     Units_Window.AmbientSettings.Area.Unit.Value = Autodesk.Civil.AreaUnitType.SquareFoot; //56;
  47.     Units_Window.AmbientSettings.Volume.Unit.Value = Autodesk.Civil.VolumeUnitType.CubicYard;// 153;
  48.     Units_Window.AmbientSettings.Speed.Unit.Value = Autodesk.Civil.SpeedUnitType.MilePerHour;// 196;
  49.     Units_Window.AmbientSettings.Angle.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  50.     Units_Window.AmbientSettings.Direction.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  51.     Units_Window.AmbientSettings.LatLong.Unit.Value = Autodesk.Civil.AngleUnitType.Degree;// 179;
  52.     Units_Window.AmbientSettings.Grade.Format.Value = Autodesk.Civil.GradeFormatType.Percent;// 2467;
  53.     Units_Window.AmbientSettings.Slope.Format.Value = Autodesk.Civil.SlopeFormatType.RunRise;// 2466;
  54.     Units_Window.AmbientSettings.GradeSlope.Format.Value = Autodesk.Civil.GradeSlopeFormatType.Percent;// 2467;
  55.     Units_Window.AmbientSettings.Station.Unit.Value = Autodesk.Civil.LinearUnitType.Foot;// 2;
  56.     Units_Window.AmbientSettings.Acceleration.Unit.Value = Autodesk.Civil.AccelerationUnitType.FootPerSecSquared;// 203;
  57.     Units_Window.AmbientSettings.Pressure.Unit.Value = Autodesk.Civil.PressureUnitType.PoundPerSquareInch;// 242;
  58.   }
  59.   tr.Commit();
  60. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 738
Re: Изменение параметров чертежа
« Ответ #8 : 05-11-2020, 09:37:49 »
А зачем тут транзакция?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Изменение параметров чертежа
« Ответ #9 : 05-11-2020, 12:03:11 »
А зачем тут транзакция?
В принципе только для того, чтобы откатывать в одной операции. Но вполне возможно, что это лишнее.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Re: Изменение параметров чертежа
« Ответ #10 : 05-11-2020, 23:39:49 »
А зачем тут транзакция?
Даааа, забыл ответить днем - мне как начинающему пока не в полной мере понятная логика обращения к программе, видел похожие операции в примерах другого когда и решил у себя употребить также. Возможно это лишнее/неверное, тут уж иду как иду  ::)

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 738
Re: Изменение параметров чертежа
« Ответ #11 : 06-11-2020, 09:57:39 »
мне как начинающему пока не в полной мере понятная логика обращения к программе, видел похожие операции в примерах другого когда и решил у себя употребить также
Шикарный ответ  :D