Инверсионная эксплуатируемая кровля
VetCAD

Дополнительные, описательные данные в атрибутах

   0 оценок

размещено: 26 Апреля 2019

Дополнительные, описательные данные в атрибутах

 

Если чертеж/модель в dwg AutoCAD должен содержать описательные данные об объектах, и эти данные предназначены для подсчетов, анализа, сохранения-передачи и т.п., то их нужно представлять в неграфическом виде. При этом необходимо обеспечить однозначную формализованную связь между графическими элементами и этими описательными данными.

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

В AutoCAD есть несколько способов решения этой задачи:

1. С помощью слоев и наборов других свойств графических элементов, в виде надписей.

2. С помощью атрибутов.

3. Использование внешних баз данных.

4. Использование дополнительных данных AutoCAD – Xdata, Xrecord.

5. Средствами вертикальных приложений.

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

Способ со слоями и т.п. - фактически графический, т.е. наименее удачный, т.к. меньше всего пригоден для программного анализа. Хотя и используется на практике для относительно небольших объемов и простого содержания описательных данных. Т.е. этот способ не универсальный.

Способ атрибутов – самый популярный для базового  AutoCAD. Он самый наглядный, очень простой, обеспечен инструментами, для него существует ряд доступных пользовательских приложений. Это «комбинированный» способ, т.е. атрибуты не только сохраняют описательные данные, но и могут отображать их в виде связанных надписей при объектах.

Способ атрибутов имеет свои недостатки. Например, содержание атрибутов всегда в текстовом виде, т.е. при вводе данных нет контроля для целочисленных значений, чисел с плавающей точкой и пр. Порок же способа с атрибутами – он пригоден только для объектов, отображаемых блоками, т.к. атрибуты в AutoCAD бывают только у одного типа графических примитивов - у блоков. Т.е. этот способ не универсальный. Это классический "костыль", т.е. использование средства, не предназначенного для решения задачи.

Использование внешних баз данных – самый мощный, универсальный, неграфический способ, но и слишком сложен для рядовых пользователей. Кроме того, этот способ самый сложный для обмена данными. Поэтому применяется редко.

Использование Xdata или Xrecord – корректный, неграфический способ. Собственно, Xdata или Xrecord и есть специально созданные Autodesk для этой цели средства - неграфические средства добавления к графическим элементам данных, в т.ч. и описательных. Но при этом Autodesk не дал пользователям инструментов для их применения. Две команды для Xdata из необязательного Express Tools не изменяют ситуацию. А для Xrecord в AutoCAD нет вообще ни одного пользовательского инструмента. Поэтому Xdata или Xrecord в принципе для описательных данных применяются, но только при специально созданных пользовательских приложениях. Т.е. для широкого круга пользователей Xdata или Xrecord практически недоступны, и, как следствие, почти неизвестны.

Возможности вертикальных приложений рассматриваться здесь не будут, поскольку они решают задачу не в общем виде. Можно сказать, что во всех вертикальных приложениях эта задача решена, хотя и очень по-разному. И пользователи базового AutoCAD с 2019 версии могут бесплатно брать и вертикальные приложения. Но при этом передать описательные данные в базовый AutoCAD невозможно, а передать в другое вертикальное приложение или так же невозможно или только в отдельные из них.

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

 

Как показательный пример парадоксальности-ненормальности ситуации – недавно на форуме появилась тема: «Замена примитивов (отрезков) на блоки», http://forum.dwg.ru/showthread.php?t=152092.

Чрезвычайно солидная, с неограниченными ресурсами, федерального уровня организация уже много лет создает и ведет для своих целей информационные системы, включающие графические технологические схемы в dwg. Масштаб деятельности огромный – вся страна, сотни тысяч километров линейных объектов, сотни тысяч и даже миллионы точечных объектов.  Работа поставлена серьезно – в т.ч. выпущены стандарты организации, СТО для создания технологических схем. Фактически – ведомственные. Эти стандарты и, вероятно, предшествующие им регламентирующие документы действуют уже 6-10 и, возможно, 15 и больше лет.

Требуемые технологические схемы в dwg кроме собственно графической информации должны содержать и информацию описательную. Стандартами определено, что графические элементы схем необходимо представить в виде блоков. А описательная информация должна быть в виде содержания атрибутов этих блоков. В том числе с помощью блоков с атрибутами необходимо отображать и линейные элементы схем.

Сами схемы при этом просты, и описательной информации об объектах требуется совсем немного - для линейных элементов достаточно 2-3 атрибута.

Пример части схемы с форума:

Можно предположить, что такая мощная организация привлекала для проектирования информационных систем многих опытных специалистов в AutoCAD. И при длительной практике, при таких объемах работ, явно большом количестве привлекаемых организаций получала значительную обратную связь, оценки выбранных способов и средств AutoCAD. Подходы могли бы многократно пересматриваться и уточняться.

При всем этом, до сих пор и, вероятно, с начала  этот подход сохраняется – описательная информация дается в атрибутах блоков. При этом с пороком данного подхода приходится мириться, и отображение линейных элементов блоками считается лишь издержками.

Трудно представить, сколько человеко-лет лишней работы было и будет затрачено при создании подобных схем из-за необходимости отображать блоками линии разной длины и направления.

Из общих соображений понятен выбор такого решения: атрибуты блоков – всем известный, проверенный, практичный, простой, наглядный, а, главное, уже готовый способ. Для масштаба работ на всю страну, для таких объемов данных желателен максимально простой способ представления и получения данных. Желательна возможность в любой точке страны найти исполнителей достаточной, т.е. минимальной квалификации. Необходим минимум инструментов, желательно только базового AutoCAD, независимость от версий AutoCAD. Необходимо обеспечить максимальную унификацию и стандартизацию данных.

Это лучше способов возможных, но требующих дополнительных разработок, координации с исполнителями работ, с неизвестными побочными эффектами и т.п.

Такой альтернативой для этих схем могло бы быть использование Xdata – специально созданного Autodesk простого средства добавления описательных данных. Xdata "проще", чем Xrecord, появились в  AutoCAD раньше. Есть многие примеры пользовательских приложений на основе Xdata под базовый AutoCAD. И сам Autodesk использует их, минимум, в одном вертикальном приложении. Но при этом по-прежнему нет общедоступных пользовательских инструментов работы с Xdata для базового AutoCAD. Две команды для Xdata из Express Tools – это ничто. (Кстати, Xdata присутствуют в AutoCAD, возможно, дольше, чем атрибуты).

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

Причина, из-за которой Autodesk до сих пор не дал удобных и достаточных инструментов для применения Xdata и Xrecord, неизвестна. Хотя, сами Xdata и Xrecord созданы в AutoCAD больше 20 и 15 лет назад. Возможно, Autodesk предназначал для работ с описательными данными только вертикальные приложения. Хотя, для многих случаев создавать и использовать вертикальные приложения бессмысленно, а было бы достаточно средств базового AutoCAD.

Как в случае с рассматриваемыми здесь схемами.

 

26.04.2019

Шаров Александр