Евгений,
Если только учитесь, то почему используете VB.Net, а не C#? Все таки C# гораздо распространеннее.
Понятно, что есть всякие конвертеры и т.п., но это только в крайнем случае.
От меня по крайней мере кода на VB.Net вы не увидите:)
Так что если объективных причин использовать VB.Net - нет, то пока не поздно, лучше переключитесь на C#.
Насчет commandData: подскажите, что нужно еще подключить (пространства имен или библиотеки), чтобы этот параметр отображался? С помощью какой команды можно совершить подключение?
этот код не работает:
Все уже подключено. Код не работает скорей всего потому, что я написал его на C#.
commandData - это параметр метода
Execute(). Это объект класса
ExternalCommandData. У этого объекта есть свойства, в т.ч. и свойство
Application, у которого в свою очередь есть свойство
ActiveUIDocument и т.п.
Это базовые вещи программирования. А как до них добраться и как объявлять переменные в конкретном языке программирования, в данном случае VB.Net - вы должны знать:)
Наверное что то типа
Dim doc As Document
doc = commandData.Application.ActiveUIDocument.Document
Модальную.
Пока скажу просто - используйте модальную.
' Что сюда вставить, чтобы отобразить версию revit-а?
Версию можно получить взяв соответствующее свойство у объекта
Application, а его можно получить только от объекта
commandData, который у вас есть в при вызове метода
Execute. Передаете
commandData в конструкторе формы и затем используете его в форме.
Могу часть на C# привести:
class Form1 : Form
{
//переменная хранит объект commanData
private CommanData _commandData ;
public Form1(CommandData commandData)
{
_commandData = commandData;
}
public void Button1_OnClick(...)
{
var app = commandData.Application;
var version = app.VersionNumber;
MessageBox.Show(version);
}
}