Новости Revit API 2015 - Материалы DevDays
Список материалов, представленных на дне разработчика Revit 2015 в декабре 2013 года (на англ.):
Текстовая презентация (23 Мб)
Видео презентация с содержанием (354 Мб)
Комментарии к презентации (198 Кб)
Примеры кода с моделями (45 Мб)
Примеры кода без моделей (1,5 Мб)
Концепция дизайна пользовательского интерфейса для Revit
На форуме Autodesk пользователь Ryan предложил очень интересную идею дизайна пользовательского интерфейса.
Ryan предлагает разработать еще один вариант пользовательского интерфейса, на подобие того как это происходит в Fusion 360 или Inventor: по щелчку правой кнопкой мыши отображать штурвал с некоторыми предопределенными командами.
В этом случае интерфейс Revit мог бы выглядеть, например, вот так:
Команды, располагающиеся на штурвале:
Настройки команд:
Пользователь Brett представил 20-ти секундное видео концепции. Реализация основана на PostCommand API.
С его собственных слов:
Надеюсь, вы не возражаете, но я взял вашу идею и попробовал ее реализовать.
Первым делам я создал форму штурвала с командами. Она содержит пбуличное свойство, представляющее собой команду для выполнения:
- Public CommandToIssue As RevitCommandId
Затем я создал на форме прозрачные контейнеры для изображения (PictureBox) с различными иконками. Кликнув на иконке, вызывается соответствующая команда и форма закрывается:
- Private Sub PictureBox2_Click( _
- ByVal sender As Object, _
- ByVal e As EventArgs) _
- Handles PictureBox2.Click
- CommandToIssue _
- = RevitCommandId.LookupPostableCommandId( _
- PostableCommand.StructuralColumn)
- End Sub
На событие отображения формы я добавил код, чтобы расположить форму в том месте, где находится курсор мыши:
- Private Sub WheelForm_Shown( _
- ByVal sender As Object, _
- ByVal e As EventArgs) _
- Handles Me.Shown
- Location = New System.Drawing.Point( _
- CInt(MousePosition.X - (Me.Width / 2)), _
- CInt(MousePosition.Y - (Me.Width / 2)))
- End Sub
Ну, и наконец команда, для отображения формы со штурвалом:
- Option Strict On
- Option Explicit On
- Imports Autodesk.Revit.Attributes
- Imports Autodesk.Revit.UI
- Imports BrevitTools.UI.Wheel
- <Transaction(TransactionMode.Manual)> _
- Public Class Wheel
- Implements IExternalCommand
- Public Function Execute( _
- ByVal cmdData As ExternalCommandData, _
- ByRef message As String, _
- ByVal elements As Autodesk.Revit.DB.ElementSet) _
- As Result Implements IExternalCommand.Execute
- Dim form As New WheelForm
- form.ShowDialog()
- If form.CommandToIssue IsNot Nothing Then
- cmdData.Application.PostCommand(
- form.CommandToIssue)
- End If
- Return Result.Succeeded
- End Function
- End Class
Для отобржаения формы я назначил «горячую клавишу» (ww).
Думаю, у этой идеи неплохой потенциал.
Большое спасибо Ryan за идею и Brett за реализацию идеи.
Источник: http://thebuildingcoder.typepad.com/blog/2014/04/revit-2015-api-news-devdays-online-recording.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=702
Опубликовано 26.04.2014Отредактировано 27.04.2014 в 21:08:06