Статьи > Опубликованные статьи

Создание и доступ к информации фильтра слоёв

(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;

Навигация

[0] Главная страница сообщений

Перейти к полной версии