Последние сообщения

Последние сообщения

Страницы: [1] 2 3 ... 10
1
Revit API / Активная электрическая мощность элемента
« Последний ответ от sdv79 18-11-2019, 21:48:51 »
Подскажите как получить встроенный параметр активной мощности элемента в категории электрические приборы "OST_ElectricalFixtures". RevitLookup выдает информацию только по электрическим цепям.
2
Вот.
Сдается мне, что ты ничего не найдешь )
3
Revit API / Re: PrintSetup InSession
« Последний ответ от Alxd 18-11-2019, 15:28:28 »
о_О, о_О, о_О
Это, конечно, уже не в тему, но попробуйте программно повернуть, скажем, тройник на 15 градусов вокруг длиной оси. Еще можете попробовать поменять систему у трубопровода с одной на другую. Ну или сформировать спецификацию металла с "двухэтажным" обозначение материала, а потом еще и сводную ведомость материалов. И все эти детские проблемы в 2020 версии, а не в первой!

Александр Ривилис, вполне возможно, что так. Я уже два разных проверил. Но в обоих случаях ошибка. И ведь вручную он с их помощью печатает, а программно - нет! Настройки идентичные при печати!

Сейчас попробую с помощью SendKey дожать это засранца.
4
Revit API / Re: PrintSetup InSession
« Последний ответ от Александр Ривилис 18-11-2019, 15:22:48 »
Причем, что интересно, Revit создает .ps файл в результате вызова SubmitPrint, а потом вываливает сообщение о неустранимой ошибке.
А это не проблема драйвера?
5
Revit API / Re: PrintSetup InSession
« Последний ответ от Александр Игнатович 18-11-2019, 15:11:04 »
Off-Topic: показать
P.S. Revit - пример крайне непродуманного и сырого продукта. В сравнении с AutoCAD - небо и земля.


о_0, 0_о, 0_0

Да ну ладно, Revit - конфетка, ну, может быть кроме API, связанного с печатью :). Где-то в другом, возможно проблема. У нас есть пакетная печать, в 2020 работает без проблем
6
Revit API / Re: PrintSetup InSession
« Последний ответ от Alxd 18-11-2019, 15:06:04 »
С группой транзакций не понял, но идея разделить на транзакции зацепила.
Разбил процесс печати на 3 транзакции, но результат тот же самый. Не понимаю, чего ему не хватает. Причем, что интересно, Revit создает .ps файл в результате вызова SubmitPrint, а потом вываливает сообщение о неустранимой ошибке. И ошибка не трай-кэтчится, что обидно. В итоге и .ps файл имеется, и сделать ничего не можешь.

Попробовал вызвать те же самые действия с правами админа, результат тот же самый. Не слабый такой облом получился при переходе на новую версию. Теперь ума не приложу, как печатать большой объем документации?! :(

Off-Topic: показать
P.S. Revit - пример крайне непродуманного и сырого продукта. В сравнении с AutoCAD - небо и земля.
7
Revit API / Re: PrintSetup InSession
« Последний ответ от Александр Игнатович 18-11-2019, 14:09:03 »
Попробуйте открыть группу транзакций, в ней транзакцию сохранения настроек печати, её коммитим, дальше печатаем, в завершение, откатываем группу транзакций
8
Revit API / Re: PrintSetup InSession
« Последний ответ от Alxd 18-11-2019, 14:04:27 »
Да, конечно в этом месте.
Только у меня, похоже не In-Session, а обычный вызов обернутый в транзакцию (в коде не указал, извиняюсь).

Судя по приведенному комментарию из документации, получается, сообщение об ошибке может возникать, если параметры не изменились, а их пытаются сохранить. Бред конечно, но допустим.  За-трай-кэтчил.

Обновил до Revit 2020.1, пытаюсь вызвать SubmitPrint и Revit просто падает с сообщением "An unrecoverable error has occurred.  The program will now be terminated.  All of your data has been recently saved, so there is no need to create recovery files." :( Опять же, в 2018-ом такого не было. 2020-ый падает стабильно.
9
Revit API / Re: PrintSetup InSession
« Последний ответ от Александр Игнатович 18-11-2019, 13:18:28 »
Как бы сложно сказать. В каком месте на этом полотне возникает ошибка?

Не здесь ли?
Код - C# [Выбрать]
  1. doc.PrintManager.PrintSetup.CurrentPrintSetting = ps;
  2. doc.PrintManager.PrintSetup.Save();

Могу предположить, что по причине:
Цитировать
Thrown when the current print setting is In-Session or the current print setting has not changed.

из документации PrintSetup.Save
10
Revit API / Re: PrintSetup InSession
« Последний ответ от Alxd 18-11-2019, 13:02:56 »
Продолжим тему? :)

В приведенном Александром Ривилисом выше коде, PrintManager.PrintSetup.Save() взят в try...catch и явно не просто так. В моем случае, в Revit 2020 именно в этом месте код рушится с сообщением "Save of the print setup was unsuccessful." При этом в 2018-ой версии все работало отлично.
Есть идеи, что может влиять на отказ в сохранении?

Мой код:
Код - C# [Выбрать]
  1.                     printManager.PrintRange = PrintRange.Select;
  2.                     printManager.Apply();
  3.  
  4.                     printManager.SelectNewPrintDriver(ExternalApplication.options.PrinterName);
  5.                     printManager.Apply();
  6.  
  7.                     if (printManager.IsVirtual == VirtualPrinterType.AdobePDF)
  8.                     {
  9.                         printManager.CombinedFile = true;
  10.                         printManager.Apply();
  11.                     }
  12.  
  13.                     string viewSheetSettingName = string.Format("ViewSheet {0}", nowTime/*viewSheet.SheetNumber*/);
  14.                     ViewSheetSetting viewSheetSetting = printManager.ViewSheetSetting;
  15.  
  16.                     ViewSet viewSet = new ViewSet();
  17.                     viewSet.Insert(viewSheet);
  18.  
  19.                     viewSheetSetting.CurrentViewSheetSet.Views = viewSet;
  20.  
  21.                     viewSheetSetting.SaveAs(viewSheetSettingName);
  22.                     printManager.Apply();
  23.  
  24.                     XYZ margins = new XYZ(6, 4, 0);
  25.                     margins = Utils.ConvertMillimetresToInches(margins);
  26.  
  27.                     PrintSetup printSetup = printManager.PrintSetup;
  28.                     IPrintSetting printSetting = printSetup.CurrentPrintSetting;
  29.                     printSetting.PrintParameters.ColorDepth = ColorDepthType.BlackLine;//добавить список или переключатель для выбора ColorDepthType;
  30.                     printSetting.PrintParameters.HiddenLineViews = HiddenLineViewsType.RasterProcessing;// = HiddenLineViewsType.VectorProcessing;
  31.                     printSetting.PrintParameters.HideCropBoundaries = true;
  32.                     printSetting.PrintParameters.HideReforWorkPlanes = true;
  33.                     printSetting.PrintParameters.HideScopeBoxes = true;
  34.                     printSetting.PrintParameters.HideUnreferencedViewTags = false;
  35.                     printSetting.PrintParameters.PaperPlacement = PaperPlacementType.Margins;
  36.                     printSetting.PrintParameters.MarginType = MarginType.UserDefined;
  37.                     printSetting.PrintParameters.UserDefinedMarginX = margins.X;
  38.                     printSetting.PrintParameters.UserDefinedMarginY = margins.Y;
  39.                     printSetting.PrintParameters.RasterQuality = RasterQualityType.High;
  40.                     printSetting.PrintParameters.ZoomType = ZoomType.Zoom;
  41.                     printSetting.PrintParameters.Zoom = 100;
  42.                     printSetting.PrintParameters.PageOrientation = formatName.IndexOf("h", StringComparison.OrdinalIgnoreCase) >= 0 ? PageOrientationType.Landscape : PageOrientationType.Portrait;
  43.  
  44.                     if (ExternalApplication.options.InversePageOrientation)
  45.                         printSetting.PrintParameters.PageOrientation = printSetting.PrintParameters.PageOrientation == PageOrientationType.Landscape ? PageOrientationType.Portrait : PageOrientationType.Landscape;
  46.  
  47.                     bool paperSizeFound = false;
  48.                     string paperSizeName = "";
  49.                     foreach (PaperSize paperSize in printManager.PaperSizes)
  50.                     {
  51.                         paperSizeName = paperSize.Name;
  52.                         if (ExternalApplication.options.InversePageFormat)
  53.                             paperSizeName = ReplaceFormatChar(paperSizeName);
  54.                         else if (ExternalApplication.options.InversePageFormatOnLandscape && printSetting.PrintParameters.PageOrientation == PageOrientationType.Landscape)
  55.                             paperSizeName = ReplaceFormatChar(paperSizeName);
  56.  
  57.                         if (string.Equals(paperSizeName, formatName, StringComparison.OrdinalIgnoreCase))
  58.                         {
  59.                             printSetting.PrintParameters.PaperSize = paperSize;
  60.                             paperSizeFound = true;
  61.                             break;
  62.                         }
  63.                     }
  64.  
  65.                     if (!paperSizeFound)
  66.                     {
  67.                         TaskDialog.Show("Revit", string.Format("Не найден формат {0} для принтера {1} на листе {2}!", formatName, ExternalApplication.options.PrinterName, viewSheet.SheetNumber), TaskDialogCommonButtons.Close);
  68.                         return result;
  69.                     }
  70.  
  71.  
  72.                     string setupName = string.Format("Setting {0}", nowTime);
  73.                     printSetup.SaveAs(setupName);
  74.                     printManager.Apply();
  75.  
  76.                     FilteredElementCollector printSettings = new FilteredElementCollector(doc).OfClass(typeof(PrintSetting));
  77.                     foreach (PrintSetting ps in printSettings)
  78.                     {
  79.                         if (ps.Name == setupName)
  80.                         {
  81.                             doc.PrintManager.PrintSetup.CurrentPrintSetting = ps;
  82.                             doc.PrintManager.PrintSetup.Save();
  83.                             break;
  84.                         }
  85.                     }
  86.  
  87.                     printManager.SubmitPrint();
  88.                     //printManager.SubmitPrint(viewSheet);
  89.                     //printManager.Apply();
  90.  
  91.                     viewSheetSetting.Delete();
  92.  
Страницы: [1] 2 3 ... 10