Доступ к аналитической модели

Автор Тема: Доступ к аналитической модели  (Прочитано 4966 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Денис ПерепецкийАвтор темы

  • ADN Club
  • Сообщений: 22
  • Карма: 1
Подскажите, направьте...
Как и откуда мне получить доступ к аналитике? Ответ есть в SDK. Поизучаю пока, но вопросы будут точно )

Собственно мне нужно получить доступ к аналитике и далее генерировать выходной файл для различных расчетных комплексов.
« Последнее редактирование: 12-02-2015, 10:29:44 от dp »
Я не профессиональный программист, сделайте скидку ))

Оффлайн Денис ПерепецкийАвтор темы

  • ADN Club
  • Сообщений: 22
  • Карма: 1
Re: Доступ к аналитической модели
« Ответ #1 : 12-02-2015, 15:03:35 »
Код - C# [Выбрать]
  1. public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
  2.         {
  3.             mApplication = commandData.Application.Application;
  4.  
  5.             if(commandData.Application.ActiveUIDocument.Selection.Elements.Size > 0)
  6.             {
  7.                 foreach(Element element in commandData.Application.ActiveUIDocument.Selection.Elements)
  8.                 {
  9.                     if(element is Wall)
  10.                     {
  11.                         Wall wall = element as Wall;
  12.                         AnalyticalModel model = wall.GetAnalyticalModel();
  13.  
  14.                         if (model.IsSurface())
  15.                         {
  16.                             /*
  17.                             ну есть у меня аналитика стены или перекрытия... а дальше то что делать не могу сообразить.
  18.                             */
  19.                         }
  20.                     }
  21.                 }
  22.             }
  23.             return Result.Succeeded;
  24.         }
  25.  

в SDK написано о свойствах аналитической модели:
Цитировать
Geometry Retrieves the geometric representation of the element.
(Inherited from Element.)

Только нет у model свойства Geometry. У элемента wall есть, только мне нужна именно аналитика (ее геометрические характеристики).
Я не профессиональный программист, сделайте скидку ))

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Доступ к аналитической модели
« Ответ #2 : 12-02-2015, 15:13:08 »
dp, с аналитикой никогда не работал, так что быстро не подскажу. Скорее всего придется вместе с Вами докапываться до истины в данном вопросе.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Доступ к аналитической модели
« Ответ #3 : 14-02-2015, 09:17:03 »
в SDK написано о свойствах аналитической модели:
Цитировать (выделенное)
Geometry Retrieves the geometric representation of the element.
(Inherited from Element.)

Только нет у model свойства Geometry. У элемента wall есть, только мне нужна именно аналитика (ее геометрические характеристики).
Класс AnalyticalModel наследуется от класса Element, поэтому у него и есть свойство Geometry. При этом у конкретного экземпляра класса Element геометрии может и не быть.

Просмотреть свойста, специфичные для класса AnalyticalModel можно в файле справке. Но не на страничке Members of class AnalyticalModel, а в соедржании.

Обратите внимание, что класс AnalyticalModel содержит несколько потомков:
  • AnalyticalModelSurface - аналитическая модель для  перекрытий и стен.
  • AnalyticalModelStick - Аналитическая модель для балок и колонн
  • AnalyticalModelColumn - Аналитическая модель для колонн.[/i]
Каждый из этих класов также содержит методы, специфичные для конкретной аналитической модели.

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Re: Доступ к аналитической модели
« Ответ #4 : 24-02-2020, 11:10:12 »
Цитировать
If the Element does not have an Analytical Model, the returned value will be NULL. This may occur even if the Element can have an Analytical Model, but does not for some reason.
для стены всегда null...
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020