Как получить доступ к свойствам шаблона просмотра для Revit и сравнить их в реальном времени? - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь перечислить свойства шаблона представления, чтобы мы могли сравнить их с другим старым шаблоном.Например, какие элементы модели скрыты или имеют переопределения в данном шаблоне или какие ссылки Revit были скрыты или переопределены в данном шаблоне.

Просмотреть шаблон (https://www.google.com/search?q=view+template+revit&rlz=1C1GGRV_enUS770US770&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjLndrd2cTbAhVESq0KHX1cAPwQ_AUICygC&biw=1536&bih=824#imgrc=Q0v-pV7Nxl4kfM:)

Я планирую разработать инструмент View Template Compare и получить доступ к владельцу и его создателю.

public void ApplyViewTemplateToActiveView()
{
    Document doc = this.ActiveUIDocument.Document;
    View viewTemplate = (from v in new FilteredElementCollector(doc)
        .OfClass(typeof(View))
        .Cast<View>()
        where v.IsTemplate == true && v.Name == "MyViewTemplate"
        select v)
        .First();
    using (Transaction t = new Transaction(doc,"Set View Template"))
    {
        t.Start();           
        doc.ActiveView.ViewTemplateId = viewTemplate.Id;
        t.Commit();
    }
}

С помощью Revit API вы можете получить доступ к: GetTemplateParameterIds Method / ViewTemplateId Property

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

Да, и нет.

Да, я полагаю, вы можете использовать Forge Model Derivative API для экспорта файла RVT, а затем построить панель мониторинга вокруг данных View Templates.Это предполагает, что данные View Templates действительно экспортируются при переводе модели.Эти данные не привязаны ни к какой геометрии, поэтому я не удивлюсь, если они будут пропущены.Вопрос здесь в том, почему?Это все равно что арендовать 16-колесный грузовик, чтобы переместить дорожную сумку через улицу.

Нет, если вы намерены напрямую взаимодействовать с моделью RVT.Forge может его просмотреть, но пока что-либо отодвинуть или запросить изменения в модели пока не доступно.С другой стороны, я даже не уверен, что данные шаблона представления доступны через экспортные производные модели.

Это дает мне другую альтернативу.Почему бы просто не собрать данные с помощью Revit API стандартным способом, а затем отправить их в базу данных и построить поверх этого?Нет никаких причин использовать Forge для всего этого.

0 голосов
/ 01 ноября 2018

Revit API предоставляет практически все свойства ViewTemplate.Например, этот метод возвращает все переопределения видимости / графики для определенной категории:

https://apidocs.co/apps/revit/2019/ed267b82-56be-6e3b-0c6d-4de7df1ed312.htm

Единственное, что я не смог получить для ViewTemplate, это «include», но всеостальное, кажется, там.

Обновление: Список или свойства, "не включенные", можно получить с помощью GetNonControlledTemplateParameterIds().

includes

0 голосов
/ 12 июня 2018

Спасибо, Джереми, я покопался в вашем замечательном сайте, а также о некотором решении, которое Конрад опубликовал на форуме «Динамо» по этому поводу.В Revit кажется вполне достижимым, вы фильтруете представление, которое является шаблоном представления, а затем извлекаете эти свойства, правильно?Мне интересно, может ли кто-нибудь указать мне правильное направление с помощью Forge.Некоторые удивительные ребята разрабатывают BQL https://www.retriever.works/. BQL (Building Query Language) - язык запросов для зданий, аналогичный тому, как SQL является языком запросов для баз данных.Это быстро и гибко.BQL помогает повысить эффективность QA / QC (обеспечение качества и контроль качества), а также извлечение данных здания, не выходя из Revit.Я также пробую это, и я хотел бы понять, есть ли какие-нибудь работы, где я мог бы начать с Forge на следующей неделе об этом.

...