Пространство имен: ARO.AIS.API.Revit

Сборка: ARO.AIS.API.dll


Вспомогательный класс для подписки на события генерируемые Revit

 public static сlass RevitTransfer


Навигация

События

Типы делегатов

Примеры


События

Имя событияТип делегатаПоддерживается в версиях RevitТипа параметра RevitАналог в RevitОписание
RevitApplicationInitializedApplicationInitializedEventDelegate2019 - 2025ApplicationInitializedEventArgsApplicationInitializedПроисходит после запуска Revit, включая загрузку и инициализацию внешних приложений.
RevitDocumentChangedDocumentChangedEventDelegate2019 - 2025DocumentChangedEventArgsDocumentChangedПроисходит когда транзакция Revit фиксируется, отменяется или повторяется. Документ доступен только для чтения.
RevitDocumentClosingDocumentClosingEventDelegate2019 - 2025DocumentClosingEventArgsDocumentClosing

Происходит перед закрытием документа. Действие можно отменить. Документ доступен только для чтения.

Уточнение: Отмена недоступна, если происходит закрытие Revit.

RevitDocumentClosedDocumentClosedEventDelegate2019 - 2025DocumentClosedEventArgsDocumentClosed

Происходит закрытия документа. Возникает, даже если закрытие документа не удалось или было отменено (см.  RevitDocumentClosing). Нельзя отменить.

RevitDocumentCreatedDocumentCreatedEventDelegate2019 - 2025DocumentCreatedEventArgsDocumentCreated

Происходит после завершения создания нового документа. Возникает, даже если создание документа не удалось или было отменено (см. RevitDocumentCreating). Документы доступны для записи (включая активный документ).

RevitDocumentCreatingDocumentCreatingEventDelegate2019 - 2025DocumentCreatingEventArgsDocumentCreating

Происходит перед созданием нового документа. Действие можно отменить. Создаваемый документ не доступен.

RevitDocumentOpeningDocumentOpeningEventDelegate2019 - 2025DocumentOpeningEventArgsDocumentOpening

Происходит перед открытием документа. Действие можно отменить. Документ нельзя изменить.

RevitDocumentOpenedDocumentOpenedEventDelegate2019 - 2025DocumentOpenedEventArgsDocumentOpened

Происходит после завершения открытия документа. Возникает, даже если открытие документа не удалось или было отменено (см. RevitDocumentOpening). Документы доступны для записи (включая активный документ).

RevitDocumentPrintedDocumentPrintedEventDelegate2019 - 2025DocumentPrintedEventArgsDocumentPrinted

Происходит после завершения печати вида или набора представлений документа. Возникает, даже если печать документа не удалась или была отменена (см. RevitDocumentPriting). Документы доступны для записи (включая активный документ).

RevitDocumentPrintingDocumentPrintingEventDelegate2019 - 2025DocumentPrintingEventArgsDocumentPrinting

Происходит перед началом печати вида или набора представлений документа. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitDocumentReloadedLatestDocumentReloadedLatestEventDelegate2021 - 2025DocumentReloadedLatestEventArgsDocumentReloadedLatest

Происходит после завершения перезагрузки последних изменений из центральной модели. Возникает даже в том случае, если перезагрузка последних изменений документа не удалась или была отменена (см. RevitDocumentReloadingLatest). Документы доступны для записи (включая активный документ).

RevitDocumentReloadingLatestDocumentReloadingLatestEventDelegate2021 - 2025DocumentReloadingLatestEventArgsDocumentReloadingLatest

Происходит перед перезагрузкой последних изменений из центральной модели. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitDocumentSavedDocumentSavedEventDelegate2019 - 2025DocumentSavedEventArgsDocumentSaved

Происходит после завершения сохранения документа. Возникает, даже если сохранение документа не удалось или было отменено (см. RevitDocumentSaving). Документы доступны для записи (включая активный документ).

Примечание: первое сохранение нового созданного документа вызывает событие RevitDocumentSavedAs, а не RevitDocumentSaved.

RevitDocumentSavedAsDocumentSavedAsEventDelegate2019 - 2025DocumentSavedAsEventArgsDocumentSavedAs

Происходит после завершения сохранения документа с новым именем файла. Возникает, даже если сохранение документа не удалось или было отменено (см. RevitDocumentSavingAs). Документы доступны для записи (включая активный документ).

RevitDocumentSavingDocumentSavingEventDelegate2019 - 2025DocumentSavingEventArgsDocumentSaving

Происходит перед сохранением документа. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitDocumentSavingAsDocumentSavingAsEventDelegate2019 - 2025DocumentSavingAsEventArgsDocumentSavingAs

Происходит перед сохранением документа под новым именем файла. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitDocumentSynchronizedWithCentralDocumentSynchronizedWithCentralEventDelegate2019 - 2025DocumentSynchronizedWithCentralEventArgsDocumentSynchronizedWithCentral

Происходит после завершения синхронизации документа с центральной моделью. Возникает, даже если синхронизация документа не удалась или была отменена (см. RevitDocumentSynchronizingWithCentral). Документы доступны для записи (включая активный документ).

RevitDocumentSynchronizingWithCentralDocumentSynchronizingWithCentralEventDelegate2019 - 2025DocumentSynchronizingWithCentralEventArgsDocumentSynchronizingWithCentral

Происходит перед синхронизацией документа с центральной моделью. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitElementTypeDuplicatedElementTypeDuplicatedEventDelegate2019 - 2025ElementTypeDuplicatedEventArgsElementTypeDuplicated

Происходит после завершения копирования (дублирования) типа элемента. Возникает даже в том случае, если копирование (дублирование) типа элемента не удалось или было отменено (см. RevitElementTypeDuplicating). Документы доступны для записи (включая активный документ).

RevitElementTypeDuplicatingElementTypeDuplicatingEventDelegate2019 - 2025ElementTypeDuplicatingEventArgsElementTypeDuplicating

Происходит перед копированием (дублированием) типа элемента. Действие можно отменить.

RevitFailuresProcessingFailuresProcessingEventDelegate2019 - 2025FailuresProcessingEventArgsFailuresProcessing

Происходит в случаях возникновения сбоев операций  фиксации или отката транзакции. Доступно ограниченное изменение документа. Повторная попытка фиксации транзакции будет зависеть от результата обработки.

RevitFamilyLoadedIntoDocumentFamilyLoadedIntoDocumentEventDelegate2019 - 2025FamilyLoadedIntoDocumentEventArgsFamilyLoadedIntoDocument

Происходит после завершения загрузки семейства в документ. Возникает даже в случае сбоя или отмены загрузки семейства (см. RevitFamilyLoadingIntoDocument). Документы доступны для записи (включая активный документ).

RevitFamilyLoadingIntoDocumentFamilyLoadingIntoDocumentEventDelegate2019 - 2025FamilyLoadingIntoDocumentEventArgsFamilyLoadingIntoDocument

Происходит перед загрузкой семейства в документ. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitFileExportedFileExportedEventEventDelegate2019 - 2025FileExportedEventArgsFileExported

Происходит после завершения экспорта в поддерживаемые Revit API форматы файлов. Возникает даже в случае сбоя или отмены экспорта файла (см. RevitFileExporting). Документы доступны для записи (включая активный документ).

RevitFileExportingFileExportingEventDelegate2019 - 2025FileExportingEventArgsFileExporting

Происходит перед экспортом в поддерживаемые Revit API форматы файлов. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitFileImportedFileImportedEventDelegate2019 - 2025FileImportedEventArgsFileImported

Происходит после завершения импорта из поддерживаемых Revit API форматов файлов. Возникает даже в случае сбоя или отмены импорта файла (см. RevitFileImporting). Документы доступны для записи (включая активный документ).

RevitFileImportingFileImportingEventDelegate2019 - 2025FileImportingEventArgsFileImporting

Происходит перед импортом из поддерживаемых Revit API форматов файлов. Действие можно отменить. Документы доступны для записи (включая активный документ).

RevitLinkedResourceOpenedLinkedResourceOpenedEventDelegate2019 - 2025LinkedResourceOpenedEventArgsLinkedResourceOpened

Происходит после завершения открытия связанного ресурса.

Уточнение: событие не будет возникать, если в связанных ресурсах CAD и IFC нет изменений.

Примечание: поддерживаются связанные ресурсы только следующих типов: Revit, IFC, CAD (dwg, dxf, dgn, sat), Topography. Возникает даже в случае сбоя открытия связанного ресурса.

RevitLinkedResourceOpeningLinkedResourceOpeningEventDelegate2019 - 2025LinkedResourceOpeningEventArgsLinkedResourceOpening

Происходит перед открытием связанного ресурса. Действие НЕ может быть отменено (НЕ подлежит отмене).

Уточнение: событие не будет возникать, если в связанных ресурсах CAD и IFC нет изменений.

Примечание: поддерживаются связанные ресурсы только следующих типов: Revit, IFC, CAD (dwg, dxf, dgn, sat), Topography. Возникает даже в случае сбоя открытия связанного ресурса.

RevitProgressChangedProgressChangedEventDelegate2019 - 2025PogressChangedEventArgsProgressChangedПроисходит при изменении значения прогресса в операциях с поддержкой индикатора выполнения. Может использоваться для отмены операции. Документ доступен только для чтения.
RevitViewPrintedViewPrintedEventDelegate2019 - 2025ViewPrintedEventArgsViewPrinted

Происходит после завершения печати вида документа. Возникает даже в случае сбоя печати просмотра. Документы доступны для записи (включая активный документ).

Уточнение: событие будет вызвано один раз, если несколько представлений объединены в один файл.

RevitViewPrintingViewPrintingEventDelegate2019 - 2025ViewPrintingEventArgsViewPrinting

Происходит перед печатью вида документа. Документы доступны для записи (включая активный документ).

Уточнение: событие будет вызвано один раз, если несколько представлений объединены в один файл.

RevitWorksharedOperationProgressChangedWorksharedOperationProgressChangedEventDelegate2019 - 2025WorksharedOperationProgressChangedEventArgsWorksharedOperationProgressChanged

Происходит только в случае поддержки совместной работы (Collaboration for Revit). Не будет вызвано для операций локальной совместной работы (local-worksharing) и при работе с Revit Server. Документ доступен только для чтения.

Уточнение: НЕ рекомендуется выполнять сложные операции в обработчике, т.к. это может увеличить время реакции (workshared operation time) для других участников совместной работы.


RevitDocumentWorksharingEnabledDocumentWorksharingEnabledEventDelegate2019 - 2025DocumentWorksharingEnabledEventArgsDocumentWorksharingEnabled

Происходит при первом включении режима совместной работы над документном. Документы доступны для записи (включая активный документ).

RevitViewExportedViewExportedEventDelegate2019 - 2025ViewExportedEventArgsViewExported

Происходит после завершения экспорта вида документа. Возникает только во время заданий ускоренного экспорта, в которых представления экспортируются параллельно с использованием фонового процесса. Возникает даже в случае сбоя экспорта представления. Документы доступны для записи (включая активный документ).

Уточнение: ускоренный экспорт происходит только при экспорте в форматы DWF и без объединения видов в один файл.

RevitViewExportingViewExportingEventDelegate2019 - 2025ViewExportingEventArgsViewExporting

Происходит перед экспортом вида документа. Возникает только во время заданий ускоренного экспорта, в которых представления экспортируются параллельно с использованием фонового процесса. Документы доступны для записи (включая активный документ).

Уточнение: ускоренный экспорт происходит только при экспорте в форматы DWF и без объединения видов в один файл.

RevitViewsExportedByContextViewsExportedByContextEventDelegate2021 - 2025ViewsExportedByContextEventArgsViewsExportedByContext

Происходит после завершения экспорта видов документа через контекст экспорта CustomExporter. Возникает даже в случае сбоя экспорта представления через контекст экспорта CustomExporter. Документы доступны для записи (включая активный документ).

RevitViewsExportingByContextViewsExportingByContextEventDelegate2021 - 2025ViewsExportingByContextEventArgsViewsExportingByContext

Происходит перед экспортом видов документа через контекст экспорта CustomExporter. Действие можно отменить. Документы доступны для записи (включая активный документ).


Типы делегатов

ApplicationInitializedEventDelegate

void ApplicationInitializedEventDelegate(object sender, object applicationInitializedEventArgs);

DocumentChangedEventDelegate

void DocumentChangedEventDelegate(object sender, object documentChangedEventArgs);

DocumentClosingEventDelegate

void DocumentClosingEventDelegate(object sender, object documentClosingEventArgs);

DocumentClosedEventDelegate

void DocumentClosedEventDelegate(object sender, object documentClosedEventArgs);

DocumentCreatedEventDelegate

void DocumentCreatedEventDelegate(object sender, object documentCreatedEventArgs);

DocumentCreatingEventDelegate

void DocumentCreatingEventDelegate(object sender, object documentCreatingEventArgs);

DocumentOpeningEventDelegate

void DocumentOpeningEventDelegate(object sender, object documentOpeningEventArgs);

DocumentOpenedEventDelegate

void DocumentOpenedEventDelegate(object sender, object documentOpenedEventArgs);

DocumentPrintedEventDelegate

void DocumentPrintedEventDelegate(object sender, object documentPrintedEventArgs);

DocumentPrintingEventDelegate

void DocumentPrintingEventDelegate(object sender, object documentPrintingEventArgs);

DocumentReloadedLatestEventDelegate

void DocumentReloadedLatestEventDelegate(object sender, object documentReloadedLatestEventArgs);

DocumentReloadingLatestEventDelegate

void DocumentReloadingLatestEventDelegate(object sender, object documentReloadingLatestEventArgs);

DocumentSavedEventDelegate

void DocumentSavedEventDelegate(object sender, object documentSavedEventArgs);

DocumentSavedAsEventDelegate

void DocumentSavedAsEventDelegate(object sender, object documentSavedAsEventArgs);

DocumentSavingEventDelegate

void DocumentSavingEventDelegate(object sender, object documentSavingEventArgs);

DocumentSavingAsEventDelegate

void DocumentSavingAsEventDelegate(object sender, object documentSavingAsEventArgs);

DocumentSynchronizedWithCentralEventDelegate

void DocumentSynchronizedWithCentralEventDelegate(object sender, object documentSynchronizedWithCentralEventArgs);

DocumentSynchronizingWithCentralEventDelegate

void DocumentSynchronizingWithCentralEventDelegate(object sender, object documentSynchronizingWithCentralEventArgs);

ElementTypeDuplicatedEventDelegate

void ElementTypeDuplicatedEventDelegate(object sender, object elementTypeDuplicatedEventArgs);

ElementTypeDuplicatingEventDelegate

void ElementTypeDuplicatingEventDelegate(object sender, object elementTypeDuplicatingEventArgs);

FailuresProcessingEventDelegate

void FailuresProcessingEventDelegate(object sender, object failuresProcessingEventArgs);

FamilyLoadedIntoDocumentEventDelegate

void FamilyLoadedIntoDocumentEventDelegate(object sender, object familyLoadedIntoDocumentEventArgs);

FamilyLoadingIntoDocumentEventDelegate

void FamilyLoadingIntoDocumentEventDelegate(object sender, object familyLoadingIntoDocumentEventArgs);

FileExportedEventEventDelegate

void FileExportedEventEventDelegate(object sender, object fileExportedEventArgs);

FileExportingEventDelegate

void FileExportingEventDelegate(object sender, object fileExportingEventArgs);

FileImportedEventDelegate

void FileImportedEventDelegate(object sender, object fileImportedEventArgs);

FileImportingEventDelegate

void FileImportingEventDelegate(object sender, object fileImportingEventArgs);

LinkedResourceOpenedEventDelegate

void LinkedResourceOpenedEventDelegate(object sender, object linkedResourceOpenedEventArgs);

LinkedResourceOpeningEventDelegate

void LinkedResourceOpeningEventDelegate(object sender, object linkedResourceOpeningEventArgs);

ProgressChangedEventDelegate

void ProgressChangedEventDelegate(object sender, object progressChangedEventArgs);

ViewPrintedEventDelegate

void ViewPrintedEventDelegate(object sender, object viewPrintedEventArgs);

ViewPrintingEventDelegate

void ViewPrintingEventDelegate(object sender, object viewPrintingEventArgs);

WorksharedOperationProgressChangedEventDelegate

void WorksharedOperationProgressChangedEventDelegate(object sender, object worksharedOperationProgressChangedEventArgs);

WorksharedOperationProgressChangedEventDelegate

void WorksharedOperationProgressChangedEventDelegate(object sender, object worksharedOperationProgressChangedEventArgs);

DocumentWorksharingEnabledEventDelegate

void DocumentWorksharingEnabledEventDelegate(object sender, object documentWorksharingEnabledEventArgs);

ViewExportedEventDelegate

void ViewExportedEventDelegate(object sender, object viewExportedEventArgs);

ViewExportingEventDelegate

void ViewExportingEventDelegate(object sender, object viewExportingEventArgs);

ViewsExportedByContextEventDelegate

void ViewsExportedByContextEventDelegate(object sender, object viewsExportedByContextEventArgs);

ViewsExportingByContextEventDelegate

void ViewsExportingByContextEventDelegate(object sender, object viewsExportingByContextEventArgs);

Примеры

В этом примере рассматривается подписка на событие завершения открытия документа (RevitDocumentOpened).

using ARO.AIS.API;
using ARO.AIS.API.Revit;
using ARO.AIS.API.Utils;
using Autodesk.Revit.DB.Events;
using Autodesk.Revit.UI;
using System;
using System.Windows;

namespace ARO.AIS.Revit.Commands
{
    public class SampleCommand : IRevitCommand
    {
        public string Uid => "00000000000000000000000000000000";
        public string Name => "Sample command";
		public string Tooltip => "Short tooltip";
        public string Description => "Show current user login";
        public Version Version => new Version(1, 0);
        public int Product => SupportedProduct.REVIT_2022;
        public byte[] Logo => null;
		public IRevitControl Control => AISTools.RevitTool.CreateButton().AsSingleOnly().SetSize(RevitButtonSize.LARGE).ToGroup("Samples");
		public byte[] TooltipImage => null;

        public byte Execute(object application, IRevitTransaction transaction)
        {
            RevitTransfer.RevitDocumentOpened += RevitTransfer_RevitDocumentOpened;

            return RevitCommandStatus.OK;
        }

        public void ForcedStop(object application) { }

        private void RevitTransfer_RevitDocumentOpened(object sender, object documentOpenedEventArgs)
        {
            bool succeededFlag = (documentOpenedEventArgs as DocumentOpenedEventArgs).Status == RevitAPIEventStatus.Succeeded;
        }
    }
}


В этом примере рассматривается перевод имеющегося кода выполняющего обработку событий Revit при помощи Revit API на поддержку обработки событий Revit при помощи ARO API.

public class Application_DocumentOpened : IExternalApplication
{
    public Result OnStartup(UIControlledApplication application)
    {
        try
        {
           application.ControlledApplication.DocumentOpened += new EventHandler<Autodesk.Revit.DB.Events.DocumentOpenedEventArgs>(application_DocumentOpened);
        }
        catch (Exception)
        {
            return Result.Failed;
        }

        return Result.Succeeded;
    }

    public Result OnShutdown(UIControlledApplication application)
    {
        application.ControlledApplication.DocumentOpened -= application_DocumentOpened;

        return Result.Succeeded;
    }

    public void application_DocumentOpened(object sender, DocumentOpenedEventArgs args)
    {
        Document doc = args.Document;

        ...
    }
}


public class SampleCommand : IRevitCommand
{
    public byte Execute(object application, IRevitTransaction transaction)
    {
        RevitTransfer.RevitDocumentOpened += RevitTransfer_RevitDocumentOpened;
        
        return RevitCommandStatus.OK;
    }

    private void RevitTransfer_RevitDocumentOpened(object sender, object documentOpenedEventArgs)
    {
        Document doc = (documentOpenedEventArgs as DocumentOpenedEventArgs)?.Document;
        
        ...
    }
}