Данная документация рассматривает только типы и интерфейсы специфичные для расширений к Pilot-BIM.
Для получения общей информации по разработке расширений для Pilot-BIM необходимо обращаться к документации Ascon Pilot SDK.
Для разработки расширений к Pilot-BIM в проекте расширения должен быть установлен NuGet-пакет Ascon.Pilot.Bim.SDK, содержащий необходимые типы и интерфейсы, описанные в данной документации.
Реализация интерфейсов, связанных с встраиванием в контекстное меню, должна быть зарегистрирована через IPilotServiceProvider (данный интерфейс также описан в документации Ascon Pilot SDK) перед началом использования.
Общий интерфейс вкладок IModelTab и IServerManagerTab
ITab.IdИдентификатор вкладки
Guid Id { get; }
Интерфейс для работы с вкладкой Информационная модель, позволяет получать интерфейсы для работы с главной панелью инструментов и боковой панелью. Наследует интерфейс ITab.
IModelTab.IModelViewerИнтерфейс сцены модели, позволяет работать с представлением модели. Значение null означает, что модель не загружена.
IModelViewer ModelViewer { get; }
IModelTab.GetToolbarManagerМетод позволяет получить интерфейс для работы с панелью инструментов.
IToolbarManager GetToolbarManager()
IModelTab.GetSidebarManagerМетод позволяет получить интерфейс для работы с боковой панелью.
ISidebarManager GetSidebarManager();
IModelTab.DisposedСобытие оповещает о закрытии вкладки.
event EventHandler Disposed
Интерфейс представляющий вкладку “Диспетчер сервреных операций”. Наследует интерфейс ITab.
Интерфейс для работы с моделями, позволяет получать интерфейсы сцены для моделей и включает в себя события, которые оповещают о состоянии моделей.
IModelManager.GetViewersМетод позволяет получить интерфейсы сцены для модели.
IEnumerable<IModelViewer> GetViewers(Guid modelId)
где:
modelId - идентификатор модели.IModelManager.ModelOpenedСобытие оповещает об открытии модели на сцене.
event EventHandler<ModelEventArgs> ModelOpened
IModelManager.ModelLoadedСобытие оповещает об окончании загрузки модели на сцене.
event EventHandler<ModelEventArgs> ModelLoaded
IModelManager.ModelClosedСобытие оповещает о закрытии модели на сцене.
event EventHandler<ModelEventArgs> ModelClosed
Интерфейс сцены модели, позволяет работать с представлением модели.
IModelViewer.ModelIdИдентификатор модели.
Guid ModelId { get; }
IModelViewer.TabIdИдентификатор вкладки.
Guid TabId { get; }
IModelViewer.ModelVersionТекущая версия модели.
DateTime ModelVersion { get; }
IModelViewer.IsModelPartLoadedМетод позволяет получить флаг состояния загрузки части модели.
bool IsModelPartLoaded(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelViewer.GetSelectionМетод позволяет получить идентификаторы выбранных элементов.
IEnumerable<IModelElementId> GetSelection()
IModelViewer.SelectМетод позволяет добавить элементы к уже выбранным.
void Select(IEnumerable<IModelElementId> ids)
где:
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)
где:
id - идентификатор элемента.IModelViewer.ShowМетод позволяет сделать элементы видимыми.
void Show(IEnumerable<IModelElementId> ids)
где:
ids - идентификаторы элементов.Метод позволяет сделать часть модели видимой.
void Show(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelViewer.HideМетод позволяет скрыть элементы.
void Hide(IEnumerable<IModelElementId> ids)
где:
ids - идентификаторы элементов.Метод позволяет скрыть часть модели.
void Hide(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelViewer.ExpandTreeNodeМетод позволяет раскрыть элемент в дереве.
void ExpandTreeNode(IModelElementId id, int levels)
где:
id - идентификатор элемента.levels - количество вложенных уровней элемента для раскрытия (0 - раскрывается только сам элемент).IModelViewer.CollapseTreeNodeМетод позволяет свернуть элемент в дереве.
void CollapseTreeNode(IModelElementId id, int levels)
где:
id - идентификатор элемента.levels - количество вложенных уровней элемента для сворачивания (0 - сворачивается только сам элемент).IModelViewer.SetColorМетод позволяет задать цвет для элементов.
void SetColor(IEnumerable<IModelElementId> ids, Color color)
где:
ids - идентификаторы элементов.color - цвет.Метод позволяет задать цвет для части модели.
void SetColor(Guid modelPartId, Color color)
где:
modelPartId - идентификатор части модели.color - цвет.IModelViewer.ClearColorsМетод позволяет сбросить цвета для элементов.
void ClearColors(IEnumerable<IModelElementId> ids)
где:
ids - идентификаторы элементов.Метод позволяет сбросить цвета для части модели.
void ClearColors(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelViewer.FitToViewМетод позволяет масштабировать сцену по всем элементам.
void FitToView()
Метод позволяет масштабировать сцену по заданным элементам.
void FitToView(IEnumerable<IModelElementId> ids)
где:
ids - идентификаторы элементов.Метод позволяет масштабировать сцену по части модели.
void FitToView(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelViewer.GetCameraPositionМетод позволяет получить текущее положение камеры.
ICameraPosition GetCameraPosition()
IModelViewer.SetCameraPositionМетод позволяет задать положение камеры.
void SetCameraPosition(ICameraPosition cameraPosition)
где:
cameraPosition - положение камеры.IModelViewer.GetClipPlanesМетод позволяет получить секущие плоскости.
IEnumerable<IClipPlane> GetClipPlanes()
IModelViewer.AddClipPlaneМетод позволяет добавить секущую плоскость, возвращает идентификатор созданной плоскости.
uint AddClipPlane(IClipPlaneProperties clipPlaneProperties)
где:
clipPlaneProperties - свойства секущей плоскости.IModelViewer.InvertClipPlaneМетод позволяет инвертировать секущую плоскость.
void InvertClipPlane(uint clipPlaneId)
где:
clipPlaneId - идентификатор секущей плоскости.IModelViewer.RemoveClipPlaneМетод позволяет удалить секущую плоскость.
void RemoveClipPlane(uint clipPlaneId)
где:
clipPlaneId - идентификатор секущей плоскости.IModelViewer.MakeScreenshotМетод позволяет сделать скриншот, возвращает массив байтов (формат - png).
byte[] MakeScreenshot(int width, int height)
где:
width - ширина.height - высота.IModelViewer.GetDisplaySettingsМетод позволяет получить текущие настройки отображения.
IModelViewerDisplaySettings GetDisplaySettings()
IModelViewer.SetDisplaySettingsМетод позволяет установить настройки отображения.
void SetDisplaySettings(IModelViewerDisplaySettings displaySettings)
где:
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.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)
где:
version - версия модели.IModelStorage.LoadElementsМетод позволяет получить все элементы для части модели.
IEnumerable<IModelElement> LoadElements(Guid modelPartId, DateTime version)
где:
modelPartId - идентификатор части модели.version - версия модели.IModelStorage.LoadElementМетод позволяет получить элемент.
IModelElement LoadElement(IModelElementId id, DateTime version)
где:
id - идентификатор элемента.version - версия модели.IModelStorage.LoadChildElementsМетод позволяет получить дочерние элементы для элемента.
IEnumerable<IModelElement> LoadChildElements(IModelElementId parentId, DateTime version)
где:
parentId - идентификатор родительского элемента.version - версия модели.IModelStorage.LoadElementPropertiesМетод позволяет получить свойства для элемента.
IEnumerable<IPropertySet> LoadElementProperties(IModelElementId id, DateTime version)
где:
id - идентификатор элемента.version - версия модели.IModelStorage.LoadElementMeshInstancesМетод позволяет получить перечисление геометрий для элемента.
IEnumerable<IMeshInstance> LoadElementMeshInstances(IModelElementId id, DateTime version)
где:
id - идентификатор элемента.version - версия модели.IModelStorage.LoadMeshDefinitionМетод позволяет получить определение геометрии (полигональную сетку).
IMeshDefinition LoadMeshDefinition(IMeshDefinitionId id)
где:
id - идентификатор геометрии.IModelStorage.LoadedСобытие оповещает о готовности к обработке вызовов пользователя.
event EventHandler Loaded
Интерфейс для работы с данными журнала коллизий.
ICollisionJournal.IsLoadedФлаг состояния готовности к обработке вызовов пользователя.
bool IsLoaded { get; }
ICollisionJournal.JournalIdИдентификатор журнала.
Guid JournalId { get; }
ICollisionJournal.LoadCollisionsМетод позволяет получить все коллизии журнала.
IReadOnlyCollection<ICollision> LoadCollisions()
ICollisionJournal.LoadedСобытие оповещает о готовности к обработке вызовов пользователя.
event EventHandler Loaded
Обращаем внимание, что при загрузке и подготовке данных, для добавляемых команд (которые сопряжены с ожиданием), необходимо придерживаться одной из следующих практик для быстрого открытия меню и своевременной обратной связи для пользователя:
- Встроить отключенную команду (с последующим ее включением, при выполнении заданных условий);
- Встроить подменю, с последующим наполнением его соответствующими командами;
- Встроить команду с замещающим текстом (например, “Загрузка”) на время обработки данных.
IMenu<IModelElementId> и IMenu<ModelContext>Интерфейсы позволяют встраивать команды в контекстное меню объектов (в дереве объектов и на сцене).
За подробным описанием интерфейса IMenu<TMenuContext> необходимо обращаться к документации Ascon Pilot SDK.
Интерфейс позволяет встраивать команды в панель инструментов.
IToolbarManager.AddSeparatorМетод позволяет добавить разделитель.
void AddSeparator(int index)
где:
index - индекс позиции вставки разделителя.IToolbarManager.AddToolbarButtonItemМетод позволяет добавить кнопку.
IToolbarButtonItem AddToolbarButtonItem(int index)
где:
index - индекс позиции вставки кнопки.IToolbarManager.AddToolbarToggleItemМетод позволяет добавить кнопку-переключатель.
IToolbarToggleItem AddToolbarToggleItem(int index)
где:
index - индекс позиции вставки кнопки-переключателя.IToolbarManager.AddToolbarMenuItemМетод позволяет добавить пункт меню.
IToolbarMenuItem AddToolbarMenuItem(int index)
где:
index - индекс позиции вставки пункта меню.IToolbarManager.AddToolbarMenuItemМетод позволяет получить все элементы панели инструментов.
IEnumerable<IToolbarItem> GetItems()
IToolbarManager.RemoveToolbarItemМетод позволяет удалить команду из панели инструментов.
void RemoveToolbarItem(int index)
где:
index - индекс позиции удаляемой команды.Интерфейс позволяет встраивать вкладки в боковую панель.
ISidebarManager.AddTabМетод позволяет добавить новую вкладку.
ISidebarTab AddTab(int index, string title, byte[] icon, object view)
где:
index - индекс позиции вставки вкладки;title - заголовок вкладки (отображается в всплывающей подсказке);byte[] - иконка в формате svg;view - контент типа FrameworkElement, который будет отображаться в качестве содержимого вкладкиISidebarManager.SelectTabМетод позволяет выбрать вкладку.
void SelectTab(int index)
где:
index - индекс позиции выбираемой вкладки;ISidebarManager.RemoveTabМетод позволяет удалить вкладку.
void RemoveTab(int index)
где:
index - индекс позиции удаляемой вкладки;ISidebarManager.GetTabsМетод позволяет получить все вкладки.
IEnumerable<ISidebarTab> GetTabs()
ISidebarManager.TabSelectionChangedСобытие оповещает об изменении активной вкладки.
event EventHandler<SidebarTabSelectionChangedEventArgs> TabSelectionChanged
Интерфейс позволяет встраивать вкладки в нижнюю панель.
IBottomPanelManager.AddBottomTabМетод позволяет добавить новую вкладку.
IBottomPanelTab AddBottomTab(int index, string title, object view);
где:
index - индекс позиции вставки вкладки;title - заголовок вкладки;view - контент типа FrameworkElement, который будет отображаться в качестве содержимого вкладкиIBottomPanelManager.SelectBottomTabМетод позволяет выбрать вкладку.
void SelectBottomTab(int index)
где:
index - индекс позиции выбираемой вкладки;IBottomPanelManager.RemoveBottomTabМетод позволяет удалить вкладку.
void RemoveBottomTab(int index)
где:
index - индекс позиции удаляемой вкладки;IBottomPanelManager.GetBottomTabsМетод позволяет получить все вкладки.
IEnumerable<IBottomPanelTab> GetBottomTabs()
IBottomPanelManager.BottomPanelTabSelectionChangedСобытие оповещает об изменении активной вкладки.
event EventHandler<BottomTabSelectionChangedEventArgs> BottomPanelTabSelectionChanged
Интерфейс для получения сервиса поиска.
IModelSearchManager.GetModelSearchServiceAsyncМетод асинхроного получения интерфейса IModelSearchService для поиска по модели.
Task<IModelSearchService> GetModelSearchServiceAsync(Guid modelId)
где:
modelId - идентификатор модели.IModelSearchManager.GetModelPartsSearchServiceAsyncМетод асинхроного получения интерфейса IModelSearchService для поиска по коллекции частей модели.
Task<IModelSearchService> GetModelPartsSearchServiceAsync(IEnumerable<Guid> modelPartsIds)
где:
modelPartsIds - коллекция идентификаторов частей модели.Интерфейс для выполнения поиска, данный интерфейс наследует интерфейс IDisposable.
IModelSearchService.AddModelPartAsyncМетод асинхроного добавления части модели в поисковый индекс.
Task AddModelPartAsync(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelSearchService.RemoveModelPartМетод удаления части модели из поискового индекса.
void RemoveModelPart(Guid modelPartId)
где:
modelPartId - идентификатор части модели.IModelSearchService.GetSearchPropertiesМетод получения коллекции свойств типа ModelSearchProperty.
IReadOnlyCollection<ModelSearchProperty> GetSearchProperties()
IModelSearchService.GetSearchPropertiesByModelPartsМетод получения свойств частей модели, возвращает словарь, где ключ - идентификатор части модели, значение - свойства типа ModelSearchProperty этой части модели.
IReadOnlyDictionary<Guid, IEnumerable<ModelSearchProperty>> GetSearchPropertiesByModelParts(IEnumerable<Guid> modelPartIds)
где:
modelPartIds - идентификаторы частей модели.IModelSearchService.SearchМетод для запуска поиска, возвращает коллекцию подходящих под условие поиска элементов IModelElementId.
IEnumerable<IModelElementId> Search(SearchSetState searchSetState, int searchResultCount)
где:
searchSetState - поисковый запрос, сформированный с помощью построителя IModelSearchSetBuilder.searchResultCount - максимальное количество найденых возвращаемых элементов.IModelSearchService.SearchМетод для запуска поиска в определенных частях модели, возвращает коллекцию подходящих под условие поиска элементов IModelElementId.
IEnumerable<IModelElementId> Search(SearchSetState searchSetState, IEnumerable<Guid> modelPartIdsToSearchIn, int searchResultCount)
где:
searchSetState - поисковый запрос, сформированный с помощью построителя IModelSearchSetBuilder.modelPartIdsToSearchIn - коллекция идентификаторов частей модели, по которым необходимо выполнить поиск. Если коллекция принимает значние null, поиск будет выполнен по всей модели.searchResultCount - максимальное количество найденых возвращаемых элементов.Интерфейс для конструирования поискового запроса. Для получения данного интерфейса необходимо воспользоваться статическим методом IModelSearchSetBuilder ModelSearchSetBuilder.CreateBuilder(SearchSetLogicalOperator.And), где:
где SearchSetLogicalOperator логический оператор запроса.
IModelSearchSetBuilder.AddExpressionsМетод добавления условий поиска, сформированных с помощью построителя выражений IModelSearchExpressionsBuilder
IModelSearchSetBuilder IModelSearchSetBuilder.AddExpressions(IModelSearchExpressionsBuilder expressionBuilder)
где:
expressionBuilder - сформированный построитель выражений для поиска.IModelSearchSetBuilder.NewGroupМетод добавления новой пустой группы для добавления в нее условий поиска. Возвращает экземпляр построителя выражений IModelSearchGroupBuilder.
IModelSearchGroupBuilder NewGroup(SearchSetLogicalOperator logicalOperator)
где:
logicalOperator - логический оператор для группы.IModelSearchSetBuilder.BuildМетод получения результирующего поискового запроса для передачи в качестве аргумента в метод IModelSearchService.Search.
SearchSetState Build()
Интерфейс конструирования поисковых запросов для группы.
IModelSearchGroupBuilder.AddExpressionsМетод добавления условий поиска, сформированных с помощью построителя выражений IModelSearchExpressionsBuilder
IModelSearchGroupBuilder IModelSearchGroupBuilder.AddExpressions(IModelSearchExpressionsBuilder expressionBuilder)
где:
expressionBuilder - сформированный построитель выражений для поиска.IModelSearchSetBuilder.NewGroupМетод добавления новой пустой группы для добавления в нее условий поиска. Возвращает экземпляр построителя выражений IModelSearchGroupBuilder.
IModelSearchGroupBuilder NewGroup(SearchSetLogicalOperator logicalOperator)
где:
logicalOperator - логический оператор для группы.Интерфейс для конструирования поискового выражения. Для получения данного интерфейса необходимо воспользоваться статическим методом ModelSearchExpressionsBuilder.CreateBuilder().
IModelSearchExpressionsBuilder.AddExpressionМетод добавления условия поиска.
IModelSearchExpressionsBuilder IModelSearchExpressionsBuilder.AddExpression(IModelSearchExpression expression)
где:
expression - сформированное с помощью статического класса ModelProperty поисковое выражение.Используйте это свойство, чтобы задать поиск по определенному идентификатору элемента.
Например:
var id = new Guid("27f622ac-13af-4037-916b-f1116d69697d");
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.GlobalIdReadable.EqualTo(id));
Используйте это свойство, чтобы задать поиск по определенному имени элемента.
Например:
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Name.EqualTo("Базовая стена:Типовой - 200мм:284316"));
Используйте это свойство, чтобы задать поиск по определенному типу элемента.
Например:
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Type.EqualTo("IfcWindow"));
Используйте это свойство, чтобы задать поиск по определенному идентификатору части модели.
Например:
var id = new Guid("79f4b1fd-ba99-429f-9d67-31959ddec6ab");
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.ModelPartId.EqualTo(id));
Используйте это свойство, чтобы задать поиск с использованием наименования части модели.
Например:
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.ModelPartName.Contains("Проект_"));
Используйте это свойство, чтобы найти все дочерние элементы.
Например:
var id = new Guid("79f4b1fd-ba99-429f-9d67-31959ddec6ab"); // Идентификатор элемента "Этаж 1"
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.PartOf.EqualTo(id));
где:
name - наименование свойства,categoryName - наименование категории; в качастве наименования категории возможно передать значение null, тогда поиск выполнится с условием <Все категории>,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 - для поиска элементов с не заданным свойством.
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 - не равно.
Данное условие доступно для типов данных 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 - не содержит.
Данное условие доступно для типа данных string.
IModelSearchExpression Contains(T value);
IModelSearchExpression NotContains(T value);
Например:
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
searchExpressionsBuilder.AddExpression(ModelProperty.Type.Contains("Project"));
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));
Поиск значений соответствующих шаблону, поддерживает одиночный(?) и многократный (*) подстановочные символы. Данное условие доступно для типа данных string.
IModelSearchExpression Wildcard(string pattern);
Например:
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
expressionsBuilder.AddExpression(ModelProperty.Type.Wildcard("*cWa??"));
Поиск значений соответствующих шаблону регулярного выражения. Данное условие доступно для типа данных string.
IModelSearchExpression Regexp(string regexpPattern);
Например:
var searchExpressionsBuilder = ModelSearchExpressionsBuilder.CreateBuilder();
expressionsBuilder.AddExpression(ModelProperty.Type.Regexp("^Ifc(Wall|Window)$"));
Интерфейс идентификатора элемента.
Описание свойств интерфейса:
Guid ElementId { get; } - идентификатор элемента;Guid ModelPartId { get; } - идентификатор части модели.Интерфейс элемента.
Описание свойств интерфейса:
IModelElementId Id { get; } - интерфейс идентификатора элемента;IModelElementId ParentId { get; } - интерфейс идентификатора родительского элемента;string Name { get; } - имя элемента;string Type { get; } - тип элемента;DateTime Version { get; } - версия элемента.Интерфейс положения камеры.
Описание свойств интерфейса:
float X { get; } - координата X положения камеры;float Y { get; } - координата Y положения камеры;float Z { get; } - координата Z положения камеры;float EyeX { get; } - координата X точки взгляда камеры;float EyeY { get; } - координата Y точки взгляда камеры;float EyeZ { get; } - координата Z точки взгляда камеры;float PivotX { get; } - координата X опорной точки вращения камеры;float PivotY { get; } - координата Y опорной точки вращения камеры;float PivotZ { get; } - координата Z опорной точки вращения камеры;float Angle { get; } - угол обзора камеры (в радианах).Интерфейс свойств секущей плоскости.
Описание свойств интерфейса:
float X { get; } - координата X положения секущей плоскости;float Y { get; } - координата Y положения секущей плоскости;float Z { get; } - координата Z положения секущей плоскости;float NormalX { get; } - координата X нормализованного вектора нормали;float NormalY { get; } - координата Y нормализованного вектора нормали;float NormalZ { get; } - координата Z нормализованного вектора нормали.Интерфейс секущей плоскости.
Описание свойств интерфейса:
uint Id { get; } - идентификатор секущей плоскости;IClipPlaneProperties Properties { get; } - интерфейс свойств секущей плоскости.Интерфейс свойства элемента.
Описание свойств интерфейса:
string Name { get; } - имя свойства;string Unit { get; } - единицы измерения свойства;object Value { get; } - значение свойства.Интерфейс группы свойств элемента.
Описание свойств интерфейса:
string Name { get; } - имя группы свойств;IEnumerable<IProperty> Properties { get; } - перечисление интерфейсов свойств;string Type { get; } - тип группы свойств.Интерфейс геометрии элемента.
Описание свойств интерфейса:
IMeshDefinitionId MeshDefinitionId { get; } - интерфейс идентификатора определения геометрии;Color Color { get; } - цвет геометрии;Matrix4x4 Placement { get; } - положение геометрии.Интерфейс идентификатора определения геометрии.
Описание свойств интерфейса:
Guid MeshId { get; } - идентификатор геометрии;Guid ModelPartId { get; } - идентификатор части модели.Интерфейс определения геометрии (полигональная сетка).
Описание свойств интерфейса:
IEnumerable<float> Vertices { get; } - перечисление вершин геометрии;IEnumerable<float> Normals { get; } - перечисление нормалей геометрии;IEnumerable<uint> Indices { get; } - перечисление индексов геометрии;IEnumerable<uint> EdgeIndices { get; } - перечисление индексов ребер геометрии.Интерфейс определения коллизии.
Описание свойств интерфейса:
Guid Id { get; } - идентификатор коллизии;IModelElementId FirstElementId { get; } - идентификатор первого элемента коллизии;IModelElementId SecondElementId { get; } - идентификатор второго элемента коллизии;DateTime FoundDateTime { get; } - дата и время обнаружения коллизии;IMeshDefinition MeshDefinition { get; } - определение геометрии (полигональной сетки) тела пересечения;double[] Transformation { get; } - матрица трансформации тела пересечения;Guid StateId { get; } - идентификатор состояния коллизии;string Name { get; } - имя коллизии;double Volume { get; } - объем тела пересечения. Объем может быть равен -1, если его не удалось посчитать.Базовый интерфейс элемента панели инструментов.
Описание свойств интерфейса:
string Id { get; } - уникальный идентификатор элемента.Интерфейс идентификации элемента типа “Разделитель” панели инструментов. Наследует интерфейс IToolbarItem.
Интерфейс, описывающий элемент панели инструментов. Наследует интерфейс IToolbarItem.
Описание свойств интерфейса:
string Title { get; set; } - наименование элемента;byte[] Icon { set; } - иконка в формате svg;bool IsEnabled { get; set; } - значение доступности элемента;bool IsTitleVisible { get; set; } - флаг отображения наименования;string Tooltip { get; set; } - всплывающая подсказка.Интерфейс, описывающий кнопку панели инструментов. Наследует интерфейс IToolbarCommandItem
Описание свойств интерфейса:
Action OnClick { set; } - делегат, который вызывается при нажатии на кнопку.Интерфейс, описывающий кнопку-переключатель панели инструментов. Наследует интерфейс IToolbarCommandItem.
Описание свойств интерфейса:
bool IsChecked { get; set; } - значение состояния;Action<bool> OnClick { set; } - делегат, который вызывается при нажатии на кнопку.Интерфейс, описывающий пункт меню панели инструментов. Наследует интерфейсы IToolbarCommandItem и IToolbarManager.
Интерфейс, описывающий вкладку боковой панели.
Описание свойств интерфейса:
string Id { get; } - уникальный идентификатор вкладки;string Title { get; } - наименование вкладки;bool IsSelected { get; } - флаг, указывающий на состояние: выбрана вкладка или нет;bool IsVisible { get; set; } - флаг, управляющий видимостью вкладки на боковой панели.
Интерфейс, описывающий вкладку нижней панели.
Описание свойств интерфейса:
string Id { get; } - уникальный идентификатор вкладки;string Title { get; } - наименование вкладки;bool IsSelected { get; } - флаг, указывающий на состояние: выбрана вкладка или нет;bool IsVisible { get; set; } - флаг, управляющий видимостью вкладки нижней панели.Перечисление типов данных свойств модели.
Описание:
PropertyKind.String - строка;PropertyKind.Double - число с плавающей запятой;PropertyKind.DateTime - время;PropertyKind.Bool - логическое значение.Интерфейс настроек отображения модели.
Описание свойств интерфейса:
IModelViewerCommonSettings ModelViewerCommonSettings { get; } - общие настройки;Интерфейс общих настроек.
Описание свойств интерфейса:
bool ShowTelemetry { get; set; } - отображать телеметрию;bool ShowAxes { get; set; } - отображать оси;bool UseCameraAnimation { get; set; } - использовать анимацию камеры;bool ShowViewCube { get; set; } - отображать видивой куб;bool HideSmallObjects { get; set; } - скрывать меленькие объекты;int SmallObjectPixelsSize { get; set; } - размер маленького объекта в пикселях;float GridLineProjectionLength { get; set; } - длина выступа метки линии сетки в мм;ModelDisplayMode ModelDisplayMode { get; set; } - режим отображения модели;bool HideEdgesWithMouseNavigation { get; set; } - скрывать ребра при навигации;bool AmbientOcclusion { get; set; } - глобальное освещение;bool LightSources { get; set; } - источники света;bool MultisampleAntiAliasing { get; set; } - сглаживание граней и ребер;bool HideSmallObjectsWithMouseNavigation { get; set; } - скрывать маленькие объекты при навигации.Перечисление режимов отображения модели.
Описание:
ModelDisplayMode.FacesAndEdges - грани и ребра;ModelDisplayMode.FacesOnly - только грани;ModelDisplayMode.EdgesOnly - только ребра (недоступно при установке HideEdgesWithMouseNavigation = true).Контекст построения контестного меню дерева объектов и сцены.
Описание свойств класса:
IEnumerable<IModelElementId> SelectedElements { get; } - выбранные элементы;IModelViewer ModelViewer { get; } - интерфейс IModelViewer.Аргументы событий изменения состояния модели.
Описание свойств аргументов:
IModelViewer Viewer { get; } - интерфейс сцены модели.Аргументы событий изменения версий модели.
Описание свойств аргументов:
DateTime Version { get; } - версия модели.Аргументы событий изменения выбранных элементов.
Описание свойств аргументов:
IEnumerable<IModelElementId> SelectedIds { get; } - перечисление интерфейсов идентификаторов выбранных элементов.Аргументы событий изменения состояния элемента в дереве элементов.
Описание свойств аргументов:
IModelElementId Id { get; } - интерфейс идентификатора элемента.Аргументы событий загрузки/выгрузки частей модели.
Описание свойств аргументов:
Guid Id { get; } - идентификатор части модели.Аргументы событий изменения выбранной вкладки боковой панели.
Описание свойств аргументов:
ISidebarTab SelectedTab { get; } - выбранная вкладка.ISidebarTab UnselectedTab { get; } - предыдущая выбранная вкладка.Аргументы событий изменения выбранной вкладки нижней панели.
Описание свойств аргументов:
IBottomPanelTab SelectedTab { get; } - выбранная вкладка.IBottomPanelTab UnselectedTab { get; } - предыдущая выбранная вкладкаТип Консолидированная 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";