C# и Sharp Develop
Главная › Форумы › Задать вопрос › C# и Sharp Develop
- В этой теме 38 ответов, 7 участников, последнее обновление 6 лет, 9 месяцев назад сделано txt.
-
АвторСообщения
-
Посоветуй видео уроки или книги по sharp develop…
По Sharp Develop ничего не подскажу.
На самом деле посмотрел твой скрипт по созданию осей через WF. Захотелось разобраться.
Посмотрел несколько видео по созданию форм, вот и умничаю.Спортивный интерес,
– кто то пишет хотя бы что-то (плагины) примитивное на C# ?
– также интересует – такие плагины можно создавать на Питоне или все-таки C# нам в путь?– кто в курсях , подскажите как получить BuiltInCategory (ost) элемента в C#
Legantmar
в личку написалСпортивный интерес,
– кто то пишет хотя бы что-то (плагины) примитивное на C# ?да, стараюсь писать на шарпе в силу своих знаний и возможностей))
да, стараюсь писать на шарпе в силу своих знаний и возможностей))
Рад слышать)
может есть ответ или мысли по поводу
– кто в курсях , подскажите как получить BuiltInCategory (ost) элемента в C#
– кто в курсях , подскажите как получить BuiltInCategory (ost) элемента в C#
Как я понял, нужно сделать так, чтобы выделяя элемент, выводилось его BuiltInCategory ?
Набросал макрос для этого:
public void GetBIC()
{
UIDocument uidoc = this.ActiveUIDocument;
Document doc = uidoc.Document;
var element = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element, "Выберите элемент"));
string message = "";
var e = element.Category.Id.IntegerValue;
foreach (var bic in Enum.GetValues(typeof(BuiltInCategory))) {
if (e==(int)bic)
{
message = bic.ToString();
}
};
TaskDialog.Show("Bic", message);
}
Здорово 😎
спасибо, буду тестить .
Oleg, будь добр, выложи полный код
проба с ошибкой (‘ObjectType” недоступен из-за его уровня защиты):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class Hello_world : Autodesk.Revit.UI.IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(
Autodesk.Revit.UI.ExternalCommandData commandData,
ref string message,
Autodesk.Revit.DB.ElementSet elements)
///public void GetBIC()
{
UIApplication uiapp = commandData.Application;
Document doc = uiapp.ActiveUIDocument.Document;
UIDocument uidoc = uiapp.ActiveUIDocument;
var element = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element, "Выберите элемент"));
string message = "";
var e = element.Category.Id.IntegerValue;
foreach (var bic in Enum.GetValues(typeof(BuiltInCategory)))
{
if (e == (int)bic)
{
message = bic.ToString();
}
}
TaskDialog.Show("Bic", message);
///{ Autodesk.Revit.UI.TaskDialog.Show("Title", "la la la");
return Autodesk.Revit.UI.Result.Succeeded;
}
}видимо , для использования
UIDocument uidoc = this.ActiveUIDocument;
Document doc = uidoc.Document;
не хватает каких-то библиотек/*
* Created by SharpDevelop.
* User: Oleg
* Date: 03.02.2018
* Time: 9:54
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
namespace test
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.DB.Macros.AddInId("23D2EA92-8C3D-4105-8EC6-7C75A84F4358")]
public partial class ThisApplication
{
private void Module_Startup(object sender, EventArgs e)
{
}
private void Module_Shutdown(object sender, EventArgs e)
{
}
#region Revit Macros generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(Module_Startup);
this.Shutdown += new System.EventHandler(Module_Shutdown);
}
#endregion
public void GetBIC()
{
UIDocument uidoc = this.ActiveUIDocument;
Document doc = uidoc.Document;
var element = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element, "Выберите элемент"));
string message = "";
var e = element.Category.Id.IntegerValue;
foreach (var bic in Enum.GetValues(typeof(BuiltInCategory))) {
if (e==(int)bic)
{
message = bic.ToString();
}
};
TaskDialog.Show("Bic", message);
}
}
}
как выглядит файл манифеста для выше приведенного решения?
я думал что приложение в любом случае должно содержать:
[Transaction(TransactionMode.Manual)]
public class ИМЯ КЛАССА : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{…
Я же предупредил, что это макрос, запускается через Диспетчер макросов в Ревите. Удобно для отладки небольших решений, которые в дальнейшем могут вырасти в нормальное приложение
т.е. когда макрос будет отлажен его можно записать в dll (или обычно так не делается) ?
Oleg
Спасибо тебе !)
Получилось такusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.UI.Selection;[Transaction(TransactionMode.Manual)]
public class swaat : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{UIApplication rvtUiApp = commandData.Application;
Application rvtApp = rvtUiApp.Application;
UIDocument rvtUiDoc = rvtUiApp.ActiveUIDocument;
Document rvtDoc = rvtUiDoc.Document;{
var element = rvtDoc.GetElement(rvtUiDoc.Selection.PickObject(ObjectType.Element, "Выберите элемент"));
string message_ = "";
var e = element.Category.Id.IntegerValue;
foreach (var bic in Enum.GetValues(typeof(BuiltInCategory)))
{
if (e == (int)bic)
{
message_ = bic.ToString();
}
};
TaskDialog.Show("Bic", message_);
}return Result.Succeeded;
}
} -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.