Alexeysh, библиотека скомпилирована под .NET 4.0, а 2015 Revit использует .NET 4.5.Здравствуйте скажите как это делается. Где взять исходники.
Это значит, что моя библиотека просто не видна. Вам нужно ее самостоятельно скомпилировать под .NET 4.5 из исходников.
Раньше писал на VBВ Visual Basic тоже есть добавление ссылок на внешние библиотеки. Возможно просто никогда не приходилось использовать.
А можно ли сделать так, чтобы она появлялась и в 2015 и во всех последующих?Одна и та же сборка не обязательно будет работать во всех версиях. Как, например, в случае с 2014 и 2015. Чтобы работало в 2015 вам нужно взять проект из исходников и собрать из него сборку для Revit 2015.
Можете ли Вы порекомендовать мне что-то почитатьКонечно. Статьи по Revit API (http://adn-cis.org/articles/revit-dotnet-api/) на нашем сайте :)
"copy "D:\C# для REVIT\RibbonUtilSample\RibbonUtilSample\RibbonUtilSample.addin" "C:\Users\11\AppData\Roaming\Autodesk\REVIT\Addins\2015"Это делается в свойствах проекта.
copy "D:\C# для REVIT\RibbonUtilSample\RibbonUtilSample\bin\Debug\*.dll" "C:\Users\11\AppData\Roaming\Autodesk\REVIT\Addins\2015"
copy "D:\C# для REVIT\RibbonUtilSample\RibbonUtilSample\bin\Debug\*.png" "C:\Users\11\AppData\Roaming\Autodesk\REVIT\Addins\2015"" с кодом 1. RibbonUtilSample
Как реализовать данный код в Вашем дополнении ?Теперь можно.
Подскажите, при компилирование в фраймворк 4.5 вылетает такое окошко и после него все сбрасывается на 4.0. Открывал, закрывал заного все одно фраймворк не меняется. В чем причина?Такое чувство что файл проекта помечен как "Только для чтения"
И еще вопрос, не могу понять, а код по созданию кнопки пишется в самом приложении или в отдельном?В самом приложении. В исходном солюшене на GitHub (https://github.com/chekalin-v/VCRevitRibbonUtil) два проекта. Один из них библиотека для легкого создания, второй - пример ее использования.
3) Изображение необходимо задавать в виде объекта класса ImageSource. Это конечно решаемо, но создает некие трудности, например, нельзя просто так вставить изображение из ресурсов.Ошибаешься. Можно - я именно так и делаю в Revit2017AddInTemplateSet (https://github.com/Andrey-Bushman/Revit2017AddInTemplateSet). Можешь глянуть код, если интересно как.
Ошибаешься. Можно - я именно так и делаюНет, не ошибаюсь. Я же не говорил, что вообще нельзя вставить из ресурсов, а что нельзя "просто" вставить, написав что то типа
Я же не говорил, что вообще нельзя вставить из ресурсов, а что нельзя "просто" вставить, написав что то типаЗначит я тебя неправильно понял. )
В твоем коде этот метод (https://github.com/Andrey-Bushman/Revit2017AddInTemplateSet/blob/master/C%23%20Project%20templates/Revit%202017%20External%20Application/Tools.cs#L298) занимает > 50 строк. Это я и имел ввиду, говоря про "не просто так"Если говорить о вынесении операции извлечения картинки в отдельный метод, то да, поскольку там нужно выполнять все те проверки входящих параметров, которые я делал. Но в сухом остатке, по сути, сам процесс извлечения значительно компактней:
Т.е. не так уж и сложен, на мой взглядСогласись, что для новичков, подобный метод может ввести в состояние шока:) HBitmap, указатели.. да еще и зачем то с пустыми или нулевыми значениями.. Именно для этого мы и упрощаем использование. :)
PS. сообщения не удаляются?Нет. Это один из принципов этого форума.
Код - C# [Выбрать]как засунуть картинку из Resources?
// assign bitmap to button pushButton.LargeImage = largeImage;
PS. сообщения не удаляются?
Получилось вот так...Чтобы не было утечки памяти лучше использовать такую конструкцию:Код - C# [Выбрать]
public BitmapImage ConvertToBitmapImage(Bitmap src) { MemoryStream ms = new MemoryStream(); ((System.Drawing.Bitmap)src).Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); BitmapImage image = new BitmapImage(); image.BeginInit(); ms.Seek(0, SeekOrigin.Begin); image.StreamSource = ms; image.EndInit(); return image; }
Может кто подскажет в чем причина?Скорей всего сборка VCRevitRibbonUtil.dll не попала в папку, где лежит сборка надстройки.
(https://i.postimg.cc/06CmZtKs/2.png) (https://postimg.cc/06CmZtKs)
Еще как pushButtonData.LargeImage = new BitmapImage(new Uri("D:\\_C#\\Button_image.png")); засунуть картинку из Resources?А ведь в утилитке как раз есть пример, как из ресурсов изображение добавить