Ascon Pilot-BIM SDK

Описание

Данная документация рассматривает только типы и интерфейсы специфичные для расширений к Pilot-BIM.
Для получения общей информации по разработке расширений для Pilot-BIM необходимо обращаться к документации Ascon Pilot SDK.
Для разработки расширений к Pilot-BIM в проекте расширения должен быть установлен NuGet-пакет Ascon.Pilot.Bim.SDK, содержащий необходимые типы и интерфейсы, описанные в данной документации.
Реализация интерфейсов, связанных с встраиванием в контекстное меню, должна быть зарегистрирована через IPilotServiceProvider (данный интерфейс также описан в документации Ascon Pilot SDK) перед началом использования.

Содержание

Интерфейсы для работы с вкладками группы “Информационное моделирование (BIM)”

Интерфейс ITab

Общий интерфейс вкладок IModelTab и IServerManagerTab

Свойства

ITab.Id

Идентификатор вкладки

Guid Id { get; }

Интерфейс IModelTab

Интерфейс для работы с вкладкой Информационная модель, позволяет получать интерфейсы для работы с главной панелью инструментов и боковой панелью. Наследует интерфейс ITab.

Свойства

IModelTab.IModelViewer

Интерфейс сцены модели, позволяет работать с представлением модели. Значение null означает, что модель не загружена.

IModelViewer ModelViewer { get; }

Методы

IModelTab.GetToolbarManager

Метод позволяет получить интерфейс для работы с панелью инструментов.

IToolbarManager GetToolbarManager()

IModelTab.GetSidebarManager

Метод позволяет получить интерфейс для работы с боковой панелью.

ISidebarManager GetSidebarManager();

События

IModelTab.Disposed

Событие оповещает о закрытии вкладки.

event EventHandler Disposed

Интерфейс IServerManagerTab

Интерфейс представляющий вкладку “Диспетчер сервреных операций”. Наследует интерфейс ITab.

Интерфейсы для работы с представлением и состоянием моделей

Интерфейс IModelManager

Интерфейс для работы с моделями, позволяет получать интерфейсы сцены для моделей и включает в себя события, которые оповещают о состоянии моделей.

Методы

IModelManager.GetViewers

Метод позволяет получить интерфейсы сцены для модели.

IEnumerable<IModelViewer> GetViewers(Guid modelId)

где:

События

IModelManager.ModelOpened

Событие оповещает об открытии модели на сцене.

event EventHandler<ModelEventArgs> ModelOpened

IModelManager.ModelLoaded

Событие оповещает об окончании загрузки модели на сцене.

event EventHandler<ModelEventArgs> ModelLoaded

IModelManager.ModelClosed

Событие оповещает о закрытии модели на сцене.

event EventHandler<ModelEventArgs> ModelClosed

Интерфейс IModelViewer

Интерфейс сцены модели, позволяет работать с представлением модели.

Свойства

IModelViewer.ModelId

Идентификатор модели.

Guid ModelId { get; }

IModelViewer.TabId

Идентификатор вкладки.

Guid TabId { get; }

IModelViewer.ModelVersion

Текущая версия модели.

DateTime ModelVersion { get; }

Методы

IModelViewer.IsModelPartLoaded

Метод позволяет получить флаг состояния загрузки части модели.

bool IsModelPartLoaded(Guid modelPartId)

где:

IModelViewer.GetSelection

Метод позволяет получить идентификаторы выбранных элементов.

IEnumerable<IModelElementId> GetSelection()

IModelViewer.Select

Метод позволяет добавить элементы к уже выбранным.

void Select(IEnumerable<IModelElementId> ids)

где:

IModelViewer.IsolateSelection

Метод позволяет изолировать выбранные элементы (скрыть все, кроме выбранных элементов).

void IsolateSelection()

IModelViewer.ClearSelection

Метод позволяет сбросить выбор элементов.

void ClearSelection()

IModelViewer.GetVisibleElements

Метод позволяет получить идентификаторы видимых элементов.

IEnumerable<IModelElementId> GetVisibleElements()

IModelViewer.GetHiddenElements

Метод позволяет получить идентификаторы скрытых элементов.


IEnumerable<IModelElementId> GetHiddenElements()

IModelViewer.IsVisible

Метод позволяет получить видимость элемента.

bool IsVisible(IModelElementId id)

где:

IModelViewer.Show

Метод позволяет сделать элементы видимыми.

void Show(IEnumerable<IModelElementId> ids)

где:

Метод позволяет сделать часть модели видимой.

void Show(Guid modelPartId)

где:

IModelViewer.Hide

Метод позволяет скрыть элементы.

void Hide(IEnumerable<IModelElementId> ids)

где:

Метод позволяет скрыть часть модели.

void Hide(Guid modelPartId)

где:

IModelViewer.ExpandTreeNode

Метод позволяет раскрыть элемент в дереве.

void ExpandTreeNode(IModelElementId id, int levels)

где:

IModelViewer.CollapseTreeNode

Метод позволяет свернуть элемент в дереве.

void CollapseTreeNode(IModelElementId id, int levels)

где:

IModelViewer.SetColor

Метод позволяет задать цвет для элементов.

void SetColor(IEnumerable<IModelElementId> ids, Color color)

где:

Метод позволяет задать цвет для части модели.

void SetColor(Guid modelPartId, Color color)

где:

IModelViewer.ClearColors

Метод позволяет сбросить цвета для элементов.

void ClearColors(IEnumerable<IModelElementId> ids)

где:

Метод позволяет сбросить цвета для части модели.

void ClearColors(Guid modelPartId)

где:

IModelViewer.FitToView

Метод позволяет масштабировать сцену по всем элементам.

void FitToView()

Метод позволяет масштабировать сцену по заданным элементам.

void FitToView(IEnumerable<IModelElementId> ids)

где:

Метод позволяет масштабировать сцену по части модели.

void FitToView(Guid modelPartId)

где:

IModelViewer.GetCameraPosition

Метод позволяет получить текущее положение камеры.

ICameraPosition GetCameraPosition()

IModelViewer.SetCameraPosition

Метод позволяет задать положение камеры.

void SetCameraPosition(ICameraPosition cameraPosition)

где:

IModelViewer.GetClipPlanes

Метод позволяет получить секущие плоскости.

IEnumerable<IClipPlane> GetClipPlanes()

IModelViewer.AddClipPlane

Метод позволяет добавить секущую плоскость, возвращает идентификатор созданной плоскости.

uint AddClipPlane(IClipPlaneProperties clipPlaneProperties)

где:

IModelViewer.InvertClipPlane

Метод позволяет инвертировать секущую плоскость.

void InvertClipPlane(uint clipPlaneId)

где:

IModelViewer.RemoveClipPlane

Метод позволяет удалить секущую плоскость.

void RemoveClipPlane(uint clipPlaneId)

где:

IModelViewer.MakeScreenshot

Метод позволяет сделать скриншот, возвращает массив байтов (формат - png).

byte[] MakeScreenshot(int width, int height)

где:

IModelViewer.GetDisplaySettings

Метод позволяет получить текущие настройки отображения.

IModelViewerDisplaySettings GetDisplaySettings()

IModelViewer.SetDisplaySettings

Метод позволяет установить настройки отображения.

void SetDisplaySettings(IModelViewerDisplaySettings displaySettings)

где:

События

IModelViewer.ModelVersionAdded

Событие оповещает о добавлении новой версии модели.

event EventHandler<ModelVersionEventArgs> ModelVersionAdded

IModelViewer.ModelVersionChanged

Событие оповещает об изменении текущей версии модели.

event EventHandler<ModelVersionEventArgs> ModelVersionChanged

IModelViewer.SelectionChanged

Событие оповещает об изменении выбора элементов.

event EventHandler<SelectionChangedEventArgs> SelectionChanged

IModelViewer.TreeNodeExpanded

Событие оповещает о раскрытии элемента в дереве.

event EventHandler<TreeNodeEventArgs> TreeNodeExpanded

IModelViewer.TreeNodeCollapsed

Событие оповещает о сворачивании элемента в дереве.

event EventHandler<TreeNodeEventArgs> TreeNodeCollapsed

IModelViewer.ModelPartLoadingRequested

Событие оповещает о выполнение команды загрузки части модели пользователем.

event EventHandler<ModelPartEventArgs> ModelPartLoadingRequested

IModelViewer.ModelPartUnloadingRequested

Событие оповещает о выполнение команды выгрузки части модели пользователем.

event EventHandler<ModelPartEventArgs> ModelPartUnloadingRequested

IModelViewer.Disposed

Событие оповещает о закрытии сцены.

event EventHandler Disposed

Интерфейсы для доступа к данным модели

Интерфейс IModelStorage

Интерфейс для работы с данными модели, позволяет получать версии модели, элементы модели, их свойства и геометрию.

Свойства

IModelStorage.IsLoaded

Флаг состояния готовности к обработке вызовов пользователя.

bool IsLoaded { get; }

IModelStorage.ModelId

Идетификатор модели.

Guid ModelId { get; }

Методы

IModelStorage.GetVersions

Метод позволяет получить все версии модели.

IEnumerable<DateTime> GetVersions()

IModelStorage.GetModelPartsIds

Метод позволяет получить все идентификаторы частей модели.

IEnumerable<Guid> GetModelPartsIds()

IModelStorage.LoadRootElements

Метод позволяет получить корневые элементы модели.

IEnumerable<IModelElement> LoadRootElements(DateTime version)

где:

IModelStorage.LoadElements

Метод позволяет получить все элементы для части модели.

IEnumerable<IModelElement> LoadElements(Guid modelPartId, DateTime version)

где:

IModelStorage.LoadElement

Метод позволяет получить элемент.

IModelElement LoadElement(IModelElementId id, DateTime version)

где:

IModelStorage.LoadChildElements

Метод позволяет получить дочерние элементы для элемента.

IEnumerable<IModelElement> LoadChildElements(IModelElementId parentId, DateTime version)

где:

IModelStorage.LoadElementProperties

Метод позволяет получить свойства для элемента.

IEnumerable<IPropertySet> LoadElementProperties(IModelElementId id, DateTime version)

где:

IModelStorage.LoadElementMeshInstances

Метод позволяет получить перечисление геометрий для элемента.

IEnumerable<IMeshInstance> LoadElementMeshInstances(IModelElementId id, DateTime version)

где:

IModelStorage.LoadMeshDefinition

Метод позволяет получить определение геометрии (полигональную сетку).

IMeshDefinition LoadMeshDefinition(IMeshDefinitionId id)

где:

События

IModelStorage.Loaded

Событие оповещает о готовности к обработке вызовов пользователя.

event EventHandler Loaded

Интерфейсы для доступа к данным журнала коллизий

Интерфейс ICollisionJournal

Интерфейс для работы с данными журнала коллизий.

Свойства

ICollisionJournal.IsLoaded

Флаг состояния готовности к обработке вызовов пользователя.

bool IsLoaded { get; }

ICollisionJournal.JournalId

Идентификатор журнала.

Guid JournalId { get; }

Методы

ICollisionJournal.LoadCollisions

Метод позволяет получить все коллизии журнала.

IReadOnlyCollection<ICollision> LoadCollisions()

События

ICollisionJournal.Loaded

Событие оповещает о готовности к обработке вызовов пользователя.

event EventHandler Loaded

Контекстное меню

Обращаем внимание, что при загрузке и подготовке данных, для добавляемых команд (которые сопряжены с ожиданием), необходимо придерживаться одной из следующих практик для быстрого открытия меню и своевременной обратной связи для пользователя:

  1. Встроить отключенную команду (с последующим ее включением, при выполнении заданных условий);
  2. Встроить подменю, с последующим наполнением его соответствующими командами;
  3. Встроить команду с замещающим текстом (например, “Загрузка”) на время обработки данных.

Интерфейсы IMenu<IModelElementId> и IMenu<ModelContext>

Интерфейсы позволяют встраивать команды в контекстное меню объектов (в дереве объектов и на сцене).

За подробным описанием интерфейса IMenu<TMenuContext> необходимо обращаться к документации Ascon Pilot SDK.

Панель инструментов

Панель инструментов вкладки “Информационная модель”

Интерфейс IToolbarManager

Интерфейс позволяет встраивать команды в панель инструментов.

Методы

IToolbarManager.AddSeparator

Метод позволяет добавить разделитель.

void AddSeparator(int index)

где:

IToolbarManager.AddToolbarButtonItem

Метод позволяет добавить кнопку.

IToolbarButtonItem AddToolbarButtonItem(int index)

где:

IToolbarManager.AddToolbarToggleItem

Метод позволяет добавить кнопку-переключатель.

IToolbarToggleItem AddToolbarToggleItem(int index)

где:

IToolbarManager.AddToolbarMenuItem

Метод позволяет добавить пункт меню.

IToolbarMenuItem AddToolbarMenuItem(int index)

где:

IToolbarManager.AddToolbarMenuItem

Метод позволяет получить все элементы панели инструментов.

IEnumerable<IToolbarItem> GetItems()

IToolbarManager.RemoveToolbarItem

Метод позволяет удалить команду из панели инструментов.

void RemoveToolbarItem(int index)

где:

Боковая панель вкладки “Информационная модель”

Интерфейс ISidebarManager

Интерфейс позволяет встраивать вкладки в боковую панель.

Методы

ISidebarManager.AddTab

Метод позволяет добавить новую вкладку.

ISidebarTab AddTab(int index, string title, byte[] icon, object view)

где:

ISidebarManager.SelectTab

Метод позволяет выбрать вкладку.

void SelectTab(int index)

где:

ISidebarManager.RemoveTab

Метод позволяет удалить вкладку.

void RemoveTab(int index)

где:

ISidebarManager.GetTabs

Метод позволяет получить все вкладки.

IEnumerable<ISidebarTab> GetTabs()

События

ISidebarManager.TabSelectionChanged

Событие оповещает об изменении активной вкладки.

event EventHandler<SidebarTabSelectionChangedEventArgs> TabSelectionChanged

Нижняя панель вкладки “Информационная модель”

Интерфейс IBottomPanelManager

Интерфейс позволяет встраивать вкладки в нижнюю панель.

Методы

IBottomPanelManager.AddBottomTab

Метод позволяет добавить новую вкладку.

 IBottomPanelTab AddBottomTab(int index, string title, object view);

где:

IBottomPanelManager.SelectBottomTab

Метод позволяет выбрать вкладку.

void SelectBottomTab(int index)

где:

IBottomPanelManager.RemoveBottomTab

Метод позволяет удалить вкладку.

void RemoveBottomTab(int index)

где:

IBottomPanelManager.GetBottomTabs

Метод позволяет получить все вкладки.

IEnumerable<IBottomPanelTab> GetBottomTabs()

События

IBottomPanelManager.BottomPanelTabSelectionChanged

Событие оповещает об изменении активной вкладки.

event EventHandler<BottomTabSelectionChangedEventArgs> BottomPanelTabSelectionChanged

Поиск по модели

Интерфейс IModelSearchManager

Интерфейс для получения сервиса поиска.

Методы

IModelSearchManager.GetModelSearchServiceAsync

Метод асинхроного получения интерфейса IModelSearchService для поиска по модели.

Task<IModelSearchService> GetModelSearchServiceAsync(Guid modelId)

где:

IModelSearchManager.GetModelPartsSearchServiceAsync

Метод асинхроного получения интерфейса IModelSearchService для поиска по коллекции частей модели.

Task<IModelSearchService> GetModelPartsSearchServiceAsync(IEnumerable<Guid> modelPartsIds)

где:

Интерфейс IModelSearchService

Интерфейс для выполнения поиска, данный интерфейс наследует интерфейс IDisposable.

Методы

IModelSearchService.AddModelPartAsync

Метод асинхроного добавления части модели в поисковый индекс.

Task AddModelPartAsync(Guid modelPartId)

где:

IModelSearchService.RemoveModelPart

Метод удаления части модели из поискового индекса.

void RemoveModelPart(Guid modelPartId)

где:

IModelSearchService.GetSearchProperties

Метод получения коллекции свойств типа ModelSearchProperty.

IReadOnlyCollection<ModelSearchProperty> GetSearchProperties()

IModelSearchService.GetSearchPropertiesByModelParts

Метод получения свойств частей модели, возвращает словарь, где ключ - идентификатор части модели, значение - свойства типа ModelSearchProperty этой части модели.

IReadOnlyDictionary<Guid, IEnumerable<ModelSearchProperty>> GetSearchPropertiesByModelParts(IEnumerable<Guid> modelPartIds)

где:

IModelSearchService.Search

Метод для запуска поиска, возвращает коллекцию подходящих под условие поиска элементов IModelElementId.

IEnumerable<IModelElementId> Search(SearchSetState searchSetState, int searchResultCount)

где:

IModelSearchService.Search

Метод для запуска поиска в определенных частях модели, возвращает коллекцию подходящих под условие поиска элементов IModelElementId.

IEnumerable<IModelElementId> Search(SearchSetState searchSetState, IEnumerable<Guid> modelPartIdsToSearchIn, int searchResultCount)

где:

Интерфейс IModelSearchSetBuilder

Интерфейс для конструирования поискового запроса. Для получения данного интерфейса необходимо воспользоваться статическим методом IModelSearchSetBuilder ModelSearchSetBuilder.CreateBuilder(SearchSetLogicalOperator.And), где:
где SearchSetLogicalOperator логический оператор запроса.

Методы

IModelSearchSetBuilder.AddExpressions

Метод добавления условий поиска, сформированных с помощью построителя выражений IModelSearchExpressionsBuilder

IModelSearchSetBuilder IModelSearchSetBuilder.AddExpressions(IModelSearchExpressionsBuilder expressionBuilder)

где:

IModelSearchSetBuilder.NewGroup

Метод добавления новой пустой группы для добавления в нее условий поиска. Возвращает экземпляр построителя выражений IModelSearchGroupBuilder.

IModelSearchGroupBuilder NewGroup(SearchSetLogicalOperator logicalOperator)

где:

IModelSearchSetBuilder.Build

Метод получения результирующего поискового запроса для передачи в качестве аргумента в метод IModelSearchService.Search.

SearchSetState Build()

Интерфейс IModelSearchGroupBuilder

Интерфейс конструирования поисковых запросов для группы.

Методы

IModelSearchGroupBuilder.AddExpressions

Метод добавления условий поиска, сформированных с помощью построителя выражений IModelSearchExpressionsBuilder

IModelSearchGroupBuilder IModelSearchGroupBuilder.AddExpressions(IModelSearchExpressionsBuilder expressionBuilder)

где:

IModelSearchSetBuilder.NewGroup

Метод добавления новой пустой группы для добавления в нее условий поиска. Возвращает экземпляр построителя выражений IModelSearchGroupBuilder.

IModelSearchGroupBuilder NewGroup(SearchSetLogicalOperator logicalOperator)

где:

Интерфейс IModelSearchExpressionsBuilder

Интерфейс для конструирования поискового выражения. Для получения данного интерфейса необходимо воспользоваться статическим методом ModelSearchExpressionsBuilder.CreateBuilder().

Методы

IModelSearchExpressionsBuilder.AddExpression

Метод добавления условия поиска.

IModelSearchExpressionsBuilder IModelSearchExpressionsBuilder.AddExpression(IModelSearchExpression expression)

где:

Построение поисковых выражений

ModelProperty.GlobalIdReadable

Используйте это свойство, чтобы задать поиск по определенному идентификатору элемента.
Например:

var id = new Guid("27f622ac-13af-4037-916b-f1116d69697d");
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.GlobalIdReadable.EqualTo(id));
ModelProperty.Name

Используйте это свойство, чтобы задать поиск по определенному имени элемента.
Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Name.EqualTo("Базовая стена:Типовой - 200мм:284316"));
ModelProperty.Type

Используйте это свойство, чтобы задать поиск по определенному типу элемента.
Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Type.EqualTo("IfcWindow"));
ModelProperty.ModelPartId

Используйте это свойство, чтобы задать поиск по определенному идентификатору части модели.
Например:

var id  = new Guid("79f4b1fd-ba99-429f-9d67-31959ddec6ab");
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.ModelPartId.EqualTo(id));
ModelProperty.ModelPartName

Используйте это свойство, чтобы задать поиск с использованием наименования части модели.
Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.ModelPartName.Contains("Проект_"));
ModelProperty.PartOf

Используйте это свойство, чтобы найти все дочерние элементы.
Например:

var id  = new Guid("79f4b1fd-ba99-429f-9d67-31959ddec6ab"); // Идентификатор элемента "Этаж 1"
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.PartOf.EqualTo(id));
ModelProperty.WithName(string name, string categoryName, PropertyDataType kind)

где:

Используйте этот метод для составления выражения, по свойству:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.WithName("Width", "Qto_WallBaseQuantities", PropertyDataType.Double).GreaterThanOrEqual(200d));

Или свойству полученному с помощью метода IModelSearchService.GetSearchProperties():

var doubleProperty = searchService.GetSearchProperties().First(x => 
                   x.CategoryName.Equals("Qto_WallBaseQuantities", StringComparison.OrdinalIgnoreCase) 
                && x.Name.Equals("Width", StringComparison.OrdinalIgnoreCase, StringComparison.OrdinalIgnoreCase));
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(doubleProperty.GreaterThanOrEqual(200d));

Условия поиска

Условия Defined и NotDefined

Defined - для поиска элементов с заданным свойством;
NotDefined - для поиска элементов с не заданным свойством.

IModelSearchExpression Defined();
IModelSearchExpression NotDefined();

Например:

var tagProperty = ModelProperty.WithName(searchService.GetSearchProperties().First(x => x.CategoryName.Equals("Pset_ElementInformation", StringComparison.OrdinalIgnoreCase)
                && x.Name.Equals("Tag", StringComparison.OrdinalIgnoreCase, StringComparison.OrdinalIgnoreCase), null, PropertyDataType.String);
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(tagProperty.Defined());
Условия EqualTo и NotEqualTo

EqualTo - равно;
NotEqualTo - не равно.
Данное условие доступно для типов данных Guid, string, double, bool, DateTime и long.

IModelSearchExpression EqualTo(T value);
IModelSearchExpression NotEqualTo(T value);

Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Type.EqualTo("IfcProject"));
Условия Contains и NotContains

Contains - содержит;
NotContains - не содержит.
Данное условие доступно для типа данных string.

IModelSearchExpression Contains(T value);
IModelSearchExpression NotContains(T value);

Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Type.Contains("Project"));
Условия GreaterThanOrEqual, LessThanOrEqual, GreaterThan, LessThan

GreaterThanOrEqual - больше или равно;
LessThanOrEqual - меньше или равно;
GreaterThan - больше;
LessThan - меньше;
Данное условие доступно для типов данных double, DateTime и long.

IModelSearchExpression GreaterThanOrEqual(T value);
IModelSearchExpression LessThanOrEqual(T value);
IModelSearchExpression GreaterThan(T value);
IModelSearchExpression LessThan(T value);

Например:

var doubleProperty = searchService.GetSearchProperties().First(x => 
x.CategoryName.Equals("Qto_WallBaseQuantities", StringComparison.OrdinalIgnoreCase) 
                && x.Name.Equals("Width", StringComparison.OrdinalIgnoreCase, StringComparison.OrdinalIgnoreCase));
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder
                    .AddExpression(ModelProperty.Type.EqualTo("IfcWall"))
                    .AddExpression(doubleProperty.GreaterThanOrEqual(200d));
Условие Wildcard

Поиск значений соответствующих шаблону, поддерживает одиночный(?) и многократный (*) подстановочные символы. Данное условие доступно для типа данных string.

IModelSearchExpression Wildcard(string pattern);

Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
expressionsBuilder.AddExpression(ModelProperty.Type.Wildcard("*cWa??"));
Условие Regexp

Поиск значений соответствующих шаблону регулярного выражения. Данное условие доступно для типа данных string.

IModelSearchExpression Regexp(string regexpPattern);

Например:

var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
expressionsBuilder.AddExpression(ModelProperty.Type.Regexp("^Ifc(Wall|Window)$"));

Типы данных

Интерфейс IModelElementId

Интерфейс идентификатора элемента.
Описание свойств интерфейса:

Интерфейс IModelElement

Интерфейс элемента.
Описание свойств интерфейса:

Интерфейс ICameraPosition

Интерфейс положения камеры.
Описание свойств интерфейса:

Интерфейс IClipPlaneProperties

Интерфейс свойств секущей плоскости.
Описание свойств интерфейса:

Интерфейс IClipPlane

Интерфейс секущей плоскости.
Описание свойств интерфейса:

Интерфейс IProperty

Интерфейс свойства элемента.
Описание свойств интерфейса:

Интерфейс IPropertySet

Интерфейс группы свойств элемента.
Описание свойств интерфейса:

Интерфейс IMeshInstance

Интерфейс геометрии элемента.
Описание свойств интерфейса:

Интерфейс IMeshDefinitionId

Интерфейс идентификатора определения геометрии.
Описание свойств интерфейса:

Интерфейс IMeshDefinition

Интерфейс определения геометрии (полигональная сетка).
Описание свойств интерфейса:

Интерфейс ICollision

Интерфейс определения коллизии.
Описание свойств интерфейса:

Интерфейс IToolbarItem

Базовый интерфейс элемента панели инструментов.
Описание свойств интерфейса:

Интерфейс IToolbarSeparator

Интерфейс идентификации элемента типа “Разделитель” панели инструментов. Наследует интерфейс IToolbarItem.

Интерфейс IToolbarCommandItem

Интерфейс, описывающий элемент панели инструментов. Наследует интерфейс IToolbarItem.
Описание свойств интерфейса:

Интерфейс IToolbarButtonItem

Интерфейс, описывающий кнопку панели инструментов. Наследует интерфейс IToolbarCommandItem
Описание свойств интерфейса:

Интерфейс IToolbarToggleItem

Интерфейс, описывающий кнопку-переключатель панели инструментов. Наследует интерфейс IToolbarCommandItem.
Описание свойств интерфейса:

Интерфейс IToolbarMenuItem

Интерфейс, описывающий пункт меню панели инструментов. Наследует интерфейсы IToolbarCommandItem и IToolbarManager.

Интерфейс ISidebarTab

Интерфейс, описывающий вкладку боковой панели.
Описание свойств интерфейса:

Интерфейс, описывающий вкладку нижней панели.
Описание свойств интерфейса:

Перечисление PropertyKind

Перечисление типов данных свойств модели.
Описание:

Интерфейс IModelViewerDisplaySettings

Интерфейс настроек отображения модели.
Описание свойств интерфейса:

Интерфейс IModelViewerCommonSettings

Интерфейс общих настроек.
Описание свойств интерфейса:

Перечисление ModelDisplayMode

Перечисление режимов отображения модели.
Описание:

Класс ModelContext

Контекст построения контестного меню дерева объектов и сцены.
Описание свойств класса:

Аргументы событий

Аргументы ModelEventArgs

Аргументы событий изменения состояния модели.
Описание свойств аргументов:

Аргументы ModelVersionEventArgs

Аргументы событий изменения версий модели.
Описание свойств аргументов:

Аргументы SelectionChangedEventArgs

Аргументы событий изменения выбранных элементов.
Описание свойств аргументов:

Аргументы TreeNodeEventArgs

Аргументы событий изменения состояния элемента в дереве элементов.
Описание свойств аргументов:

Аргументы ModelPartEventArgs

Аргументы событий загрузки/выгрузки частей модели.
Описание свойств аргументов:

Аргументы SidebarTabSelectionChangedEventArgs

Аргументы событий изменения выбранной вкладки боковой панели.
Описание свойств аргументов:

Аргументы BottomPanelTabSelectionChangedEventArgs

Аргументы событий изменения выбранной вкладки нижней панели.
Описание свойств аргументов:

Константы

Имена типов

Тип Консолидированная BIM-модель.

public static string CoordinationModel = "bim_coordinationModel";

Тип Часть консолидированной модели.

public static string ModelPart = "bim_modelPart";

Тип Папка замечаний к модели.

public static string RemarksFolder = "bim_modelRemarksFolder";

Тип Папка точек взгляда модели.

public static string ViewPointsFolder = "bim_viewPointsFolder";

Тип Папка поисковых наборов.

public static string SearchSetFolder = "bim_searchSetsFolder";

Тип Точка взгляда модели.

public static string ViewPoint = "bim_viewPoint";

Тип Поисковый набор.

public static string SearchSet = "bim_searchSet";

Имена атрибутов

Атрибут Имя.

public static string Name = "name";

Атрибут Поисковый запрос объекта типа Поисковый набор.

public static string SearchRequest = "searchRequest";

Идентификаторы элементов панели инструментов сцены

Идентификатор элемента Открыть проект.

public static string OpenProject = "tbiOpenProject";

Идентификатор элемента Настройки отображения.

public static string ViewerOptions = "tbiOptions";

Идентификатор элемента Масштабировать по всем объектам.

public static string ZoomToFit = "tbiZoomToFit";

Идентификатор элемента Отображать скрытые объекты.

public static string ToggleHiddenNodesVisibilityMode = "tbiToggleHiddenNodesVisibilityMode";

Идентификатор элемента Отображать замечания.

public static string ToggleRemarksVisibility = "tbiToggleRemarksVisibility";

Базовый идентификатор элементов добавления замечаний разных типов.

public static string AddRemarkBase = "tbiAddRemark";

Идентификатор элемента Создать новую секущую плоскость.

public static string AddClipPlane = "tbiAddClipPlane";

Идентификатор элемента Инвертировать выбраную секущую плоскость.

public static string InvertSelectedClipPlane = "tbiInvertSelectedClipPlane";

Идентификатор элемента Инструменты измерений.

public static string MeasurementTools = "tbiMeasurementTools";

Идентификатор элемента измерения По двум точкам.

public static string TwoPointsMeasure = "tbiTwoPointsMeasure";

Идентификатор элемента измерения Длина ребра.

public static string EdgesMeasure = "tbiEdgesMeasure";

Идентификатор элемента измерения Между точкой и плоскостью.

public static string PointAndPlaneMeasure = "tbiPointAndPlaneMeasure";

Идентификатор элемента Настройки инструментов измерения.

public static string MeasurementToolsOptions = "tbiMeasurementToolsOptions";

Идентификатор элемента Удалить выбранные элементы.

public static string DeleteSelectedElement = "tbiDeleteSelected";

Идентификатор элемента Фото Pilot-BIM Camera.

public static string BimCameraMenu = "tbiRealViewMenu";

Идентификатор элемента Изменить связь с папкой фото на диске….

public static string BimCameraChangeRootFolder = "tbiRealViewChangeRootFolder";

Идентификатор элемента Удалить связь с папкой фото на диске….

public static string BimCameraUnlinkRootFolder = "tbiRealViewUnlinkRootFolder";

Идентификатор элемента Связать с папкой фото на диске….

public static string BimCameraLinkRootFolder = "tbiRealViewLinkRootFolder";

Идентификатор элемента Источник виртуального начала координат.

public static string VirtualOriginSourceMenu = "tbiVirtualOriginSourceMenu";

Базовый идентификатор для элемента источника виртального начала координат.

public static string SetVirtualOriginSourceBase = "tbiSetVirtualOriginSource_";

Идентификатор элемента Удалить связь.

public static string UnlinkVirtualOriginSource = "tbiUnlinkVirtualOriginSource";

Идентификатор элемента Нет доступных источников виртуального начала координат.

public static string NoAvailableVirtualOriginSources = "tbiNoVirtualOriginSources";

Идентификаторы команд контекстного меню сцены

Идентификатор команды Масштабировать по всем объектам.

public static string ZoomToFitCommand = "miZoomToFitCommand";

Идентификатор команды Сбросить скрытие всех объектов.

public static string ResetHiddenNodesCommand = "miResetHiddenNodesCommand";

Идентификатор команды Построить отчёт по выбранным объектам.

public static string BuildReportBaseCommand = "miBuildReportCommand";

Идентификатор команды Масштабировать по выбранным объектам.

public static string ZoomToFitSelectedCommand = "miZoomToFitSelectedCommand";

Идентификатор команды Скрыть выбранное.

public static string HideSelectedNodesCommand = "miHideSelectedNodesCommand";

Идентификатор команды Скрыть все кроме выбранного.

public static string HideAllButSelectedNodeCommand = "miHideAllButSelectedNodeCommand";

Идентификатор команды Копировать ссылку.

public static string CopyLinkCommand = "miCopyLinkCommand";

Идентификатор команды Инвертировать выбранную секущую плоскость.

public static string InvertSelectedClipPlaneCommand = "miInvertSelectedClipPlaneCommand";

Идентификатор команды Показать в журнале проблем.

public static string ShowIssueItemCommandBase = "miShowIssueItemCommandBase";

Идентификатор команд перехода к определнному пересечеию в журнале проблем.

public static string SubShowIssueItemCommand = "misubShowIssueItemCommand";

Идентификаторы команд контекстного меню дерева

Идентификатор команды Масштабировать по всем объектам.

public static string ZoomToFitCommand = "miZoomToFitCommand";

Идентификатор команды Масштабировать по выбранным объектам.

public static string ZoomToFitSelectedCommand = "miZoomToFitSelectedCommand";

Идентификатор команды Скрыть выбранное.

public static string HideSelectedNodesCommand = "miHideSelectedNodesCommand";

Идентификатор команды Сбросить скрытие всех объектов.

public static string ResetHiddenNodesCommand = "miResetHiddenNodesCommand";

Идентификатор команды Копировать ссылку.

public static string CopyLinkCommand = "miCopyLinkCommand";

Идентификатор команды Перейти к исходному файлу на диске.

public static string OpenSourceFileLocationCommand = "miOpenSourceFileLocationCommand";

Идентификатор команды Построить отчёт по выбранным объектам.

public static string BuildReportBaseCommand = "miBuildReportCommand";

Идентификатор команды Полное перестроение.

public static string RebuildModelPartCommand = "miRebuildModelPartCommand";

Идентификатор команды Выгрузить часть модели.

public static string UnloadSelectedNodesCommand = "miUnloadSelectedNodesCommand";

Идентификатор команды Скрыть все кроме выбранного.

public static string IsolateSelectedCommand = "miIsolateSelectedCommand";

Идентификатор команды Показать выбранное.

public static string ShowSelectedNodesCommand = "miShowSelectedNodesCommand";

Идентификатор команды Загрузить часть модели.

public static string LoadSelectedNodesCommand = "miLoadSelectedNodesCommand";

Идентификаторы вкладок боковой панели

Идентификатор вкладки Замечания.

public static string RemarksTab = "remarksTab";

Идентификатор вкладки Чаты.

public static string ModelChatTab = "modelChatTab";

Идентификатор вкладки Точки взгляда.

public static string ViewPointsTab = "viewPointsTab";

Идентификатор вкладки Проверки модели.

public static string CollisionsDetectorTab = "collisionsDetectorTab";

Идентификатор вкладки Фото Pilot-BIM Camera.

public static string BimCameraTab = "bimCameraTab";