Статьи > Опубликованные статьи
Создание и доступ к информации фильтра слоёв
(1/1)
Александр Ривилис:
Создание и доступ к информации фильтра слоёв
alihovsky:
Приветствую. Попытался к коду Александра прикрутить окно, где есть текстбокс для имени фильтра слоёв, этот же текстбокс есть и Expression для фильтра.
Есть два затыка:
1.Expression не записывается, видимо, неверно передаю Expression?
2.Странное поведение диспетчера слоёв - фильтр создаётся, но отображается если закрыть-открыть диспетчер или если запустить команду, находясь внутри другого фильтра в диспетчере. Нужно вот здесь пробовать обновить диспетчер Autodesk.AutoCAD.Windows.Data.LayerFilterCollection?
--- Цитата: Александр Ривилис от 18-11-2013, 01:30:03 ---<a href="http://adn-cis.org/sozdanie-i-dostup-k-informaczii-filtra-sloyov.html" title="Создание и доступ к информации фильтра слоёв">Создание и доступ к информации фильтра слоёв[/url]
--- Конец цитаты ---
--- Код - C# [Выбрать] ---public class CreateLayerFilMtd { public void CreateLayerFilter(Document doc, string MyLyFilter) { var db = doc.Database; LayerFilterTree filterTree = db.LayerFilters; LayerFilterCollection filters = filterTree.Root.NestedFilters; { using (var tr = db.TransactionManager.StartTransaction()) { using (LayerFilter layerFilter = new LayerFilter()) { // Создаём новый фильтр слоёв layerFilter.Name = MyLyFilter; filters.Add(layerFilter); // Устанавливаем изменённые фильтры для базы данных db.LayerFilters = filterTree; string myst; myst = string.Concat("NAME == \"*",MyLyFilter,"*\""); layerFilter.FilterExpression = myst; } tr.Commit(); } } } }
alihovsky:
Тупанул, извините:-\
--- Код - C# [Выбрать] --- // Создаём новый фильтр слоёв string myst; myst = string.Concat("NAME == \"*", MyLyFilter, "*\""); layerFilter.FilterExpression = myst; layerFilter.Name = MyLyFilter; filters.Add(layerFilter); // Устанавливаем изменённые фильтры для базы данных db.LayerFilters = filterTree;
Навигация
Перейти к полной версии