Для интеграции макроса в проект макроса Revit выполните следующие действия.
Этот раздел можно пропустить, если образцы, описанные в разделе "Использование образцов макросов Revit SDK" соответствуют вашим потребностям.
В данном разделе поясняется, где можно создать папки в проектах IDE, соответствующие ресурсам в файловой системе, а также как добавить обязательные ссылки и определения свойств. В макросах, скомпонованных в файле Revit_Macro_Samples.rvt, поставляемом вместе с пакетом SDK, эти операции уже выполнены.
Если макрос представляет собой пользовательский интерфейс, в проект требуется добавить ссылки. Например, в макросе SampleRooms SDK необходимо добавить ссылки на следующие пространства имен:
Начав работу в Диспетчере макросов, выберите тип проекта и нажмите "Изменить".
В IDE перейдите в окно "Project Explorer". По умолчанию оно закреплено на правой стороне дисплея.
В случае проекта макроса (например, AppCSharp), щелкните правой кнопкой мыши в разделе "References" и выберите в контекстном меню команду "Add Reference".
В диалоговом окне "Add Reference" найдите в списке и выберите System.Drawing и System.Windows.Forms. Выбор нескольких элементов выполняется при нажатой клавише Ctrl. Например:
По завершении нажмите кнопку "ОК".
Окно "Project Explorer" в IDE обновляется, в нем отображаются новые ссылки:
В "Проводнике проектов" IDE щелкните правой кнопкой мыши на проекте макроса и выберите пункт меню "Добавить" "Новая папка". Например:
Присвойте имя папке. В этом примере папка будет называться Samples. Затем щелкните на записи папки "Образцы" и повторно выберите пункт меню "Добавить" "Новая папка" для добавления вложенной папки, например "Помещения".
Вне среды IDE для перехода к установочным папкам Revit и поиска папки VstaMacros следует использовать Проводник Windows. Обратите внимание, что в этой папке были созданы соответствующие вложенные папки \Samples\Rooms.
Вне среды Revit IDE скопируйте файлы макросов в созданную вложенную папку.
Вернитесь в среду Revit IDE. В "Проводнике проектов" (для продолжения работы над данными примером) щелкните правой кнопкой мыши на папке, созданной для макроса, и выберите в контекстном меню "Добавить" "Существующий элемент". Например:
Перейдите в диалоговом окне IDE в соответствующую вложенную папку папки установки Revit (например, в папку Revit SDK Macro Sample), выберите все файлы, относящиеся к макросу, и нажмите кнопку "Добавить".
В данном примере обновленный проводник проекта IDE для GetTimeElapsed_CSharp содержит следующие компоненты:
После добавления файлов в проект можно написать метод, выполняющий макрос. Например, на языке C#:
/// Sample Rooms testpublic void RunSampleRooms(){SamplesRoom sample = new SamplesRoom(this);sample.Run();}
Не забудьте добавить директиву "using" для пространства имен макроса. Например:
using Revit.SDK.Samples.Rooms.CS;
Сохраните проект, а затем выберите "Build" в меню панели инструментов IDE. Запустите в Revit Диспетчер макросов и выберите макрос в систематизированном по категориям списке. Образец Rooms в SDK может быть представлен кодом макрокоманды уровня документа; в этом случае для ее выполнения в проекте AppCSharp, показанном на копиях экрана в настоящем разделе, потребуется изменение кода.
При выполнении из окна Диспетчера макрос собирает данные из модели и выдает сводную информацию. Далее приводится пример:
Обратите внимание на то, что один из образцов макроса Revit — GridCreation — имеет зависимости с файлом файлом resources.resx. Прежде чем экспериментировать с образцом GridCreation, настройте файл ResX в Revit macro IDE. Эта операция уже выполнена в образцах уровня документа, встроенных в Revit_Macro_Samples.rvt (из пакета SDK). Однако для макросов, разрабатываемых самостоятельно, возможно, потребуется определить свойства в файле resources.resx проекта. В данном разделе приведен пример.
В "Project Explorer" перейдите в папку Properties для пользовательского макроса. Например, YourMacro Образцы GridCreation Свойства.
Выделите файл resources.resx.
На панели "Свойства" выберите свойство "Пользовательский инструмент" и введите ResXFileCodeGenerator в столбце "Значение".