Поделиться через


Shape - класс

Абстрактный базовый класс DomainClass Shape для фигур геометрии и секций.

Иерархия наследования

System.Object
  Microsoft.VisualStudio.Modeling.ModelElement
    Microsoft.VisualStudio.Modeling.DslDefinition.DomainElement
      Microsoft.VisualStudio.Modeling.DslDefinition.AttributedDomainElement
        Microsoft.VisualStudio.Modeling.DslDefinition.NamedDomainElement
          Microsoft.VisualStudio.Modeling.DslDefinition.DomainClass
            Microsoft.VisualStudio.Modeling.DslDefinition.DiagramElement
              Microsoft.VisualStudio.Modeling.DslDefinition.BaseShape
                Microsoft.VisualStudio.Modeling.DslDefinition.Shape
                  Подробнее...

Пространство имен:  Microsoft.VisualStudio.Modeling.DslDefinition
Сборка:  Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0 (в Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0.dll)

Синтаксис

'Декларация
<DisplayNameResourceAttribute("Microsoft.VisualStudio.Modeling.DslDefinition.Shape.DisplayName",  _
    GetType(DslDefinitionModelDomainModel), "Microsoft.VisualStudio.Modeling.DslDefinition.GeneratedCode.DomainModelResx")> _
<DescriptionResourceAttribute("Microsoft.VisualStudio.Modeling.DslDefinition.Shape.Description",  _
    GetType(DslDefinitionModelDomainModel), "Microsoft.VisualStudio.Modeling.DslDefinition.GeneratedCode.DomainModelResx")> _
<DomainModelOwnerAttribute(GetType(DslDefinitionModelDomainModel))> _
<CLSCompliantAttribute(True)> _
<DomainObjectIdAttribute("f1f25ea6-bdf9-4b35-9dec-59395fba0810")> _
<ValidationStateAttribute(ValidationState.Enabled)> _
Public MustInherit Class Shape _
    Inherits BaseShape
[DisplayNameResourceAttribute("Microsoft.VisualStudio.Modeling.DslDefinition.Shape.DisplayName", 
    typeof(DslDefinitionModelDomainModel), "Microsoft.VisualStudio.Modeling.DslDefinition.GeneratedCode.DomainModelResx")]
[DescriptionResourceAttribute("Microsoft.VisualStudio.Modeling.DslDefinition.Shape.Description", 
    typeof(DslDefinitionModelDomainModel), "Microsoft.VisualStudio.Modeling.DslDefinition.GeneratedCode.DomainModelResx")]
[DomainModelOwnerAttribute(typeof(DslDefinitionModelDomainModel))]
[CLSCompliantAttribute(true)]
[DomainObjectIdAttribute("f1f25ea6-bdf9-4b35-9dec-59395fba0810")]
[ValidationStateAttribute(ValidationState.Enabled)]
public abstract class Shape : BaseShape

Тип Shape предоставляет следующие члены.

Конструкторы

  Имя Описание
Защищенный метод Shape Конструктор.

В начало страницы

Свойства

  Имя Описание
Открытое свойство AccessModifier Получает или задает значение свойства домена AccessModifier.Определяет, является ли модификатор доступа для класса домена открытым или внутренними. (Унаследовано от DomainClass.)
Открытое свойство AllDescendants Получает доступный только для чтения список всех доменных классов, прямо или косвенно унаследованных от данного. (Унаследовано от DomainClass.)
Открытое свойство AllProperties Набор всех свойств DomainProperty, как заданных в этом классе, так и унаследованных от базовых классов. (Унаследовано от DomainClass.)
Открытое свойство AllRolesPlayed Набор всех ролей DomainRole, как выполняемых непосредственно этим классом, так и унаследованных от базовых классов. (Унаследовано от DomainClass.)
Открытое свойство Attributes Получает список Attributes. (Унаследовано от AttributedDomainElement.)
Открытое свойство BaseClass Получает или задает базовый класс данного доменного класса. (Унаследовано от DomainClass.)
Открытое свойство ClassData Получает или задает ClassData.Данные конфигурации сериализации XML для доменного класса. (Унаследовано от DomainClass.)
Открытое свойство CustomAttributes Получает или задает значение свойства домена CustomAttributes.Используется для задания атрибутов кода, созданного из данного элемента. (Унаследовано от AttributedDomainElement.)
Открытое свойство CustomTypeDescriptor Получает или задает CustomTypeDescriptor.Определение настраиваемого дескриптора типа для класса. (Унаследовано от DomainClass.)
Открытое свойство Decorators Получает список Decorators.Декораторы для элемента схемы. (Унаследовано от DiagramElement.)
Открытое свойство Description Получает или задает значение свойства домена Description.Используется в пользовательском интерфейсе и в документации по коду созданного конструктора. (Унаследовано от AttributedDomainElement.)
Открытое свойство DisplayName Получает или задает значение свойства домена DisplayName.Имя, которое будет отображаться в созданном конструкторе для этого элемента. (Унаследовано от NamedDomainElement.)
Открытое свойство DslLibrary Получает или задает DslLibrary.Библиотека Dsl, определяющая фигуру. (Унаследовано от BaseShape.)
Открытое свойство ElementMergeDirectives Получает список ElementMergeDirectives. (Унаследовано от DomainClass.)
Открытое свойство ExposesFillColorAsProperty Получает или задает значение свойства домена ExposesFillColorAsProperty.Если значение равно true, свойство домена было добавлено в фигуру, чтобы разрешить отображение цвета заливки в окне свойств созданного конструктора.
Открытое свойство ExposesFillGradientMode Получает или задает значение свойства домена ExposesFillGradientMode.Если значение равно true, свойство домена было добавлено в фигуру, чтобы разрешить отображение режима заливки градиента в окне свойств созданного конструктора.
Открытое свойство ExposesOutlineColorAsProperty Получает или задает значение свойства домена ExposesOutlineColorAsProperty.Если значение равно true, свойство домена было добавлено в фигуру, чтобы разрешить отображение цвета контура в окне свойств созданного конструктора.
Открытое свойство ExposesOutlineDashStyleAsProperty Получает или задает значение свойства домена ExposesOutlineDashStyleAsProperty.Если значение равно true, свойство домена было добавлено в фигуру, чтобы разрешить отображение стиля пунктира контура в окне свойств созданного конструктора.
Открытое свойство ExposesOutlineThicknessAsProperty Получает или задает значение свойства домена ExposesOutlineThicknessAsProperty.Если значение равно true, свойство домена было добавлено в фигуру, чтобы разрешить отображение толщины контура в окне свойств созданного конструктора.
Открытое свойство ExposesTextColor Получает или задает значение свойства домена ExposesTextColor.Если значение равно true, свойство домена было добавлено в соединитель, чтобы разрешить отображение цвета текста в окне свойств созданного конструктора. (Унаследовано от DiagramElement.)
Открытое свойство FillColor Получает или задает значение свойства домена FillColor.Цвет заливки данной фигуры.
Открытое свойство FillGradientMode Получает или задает значение свойства домена FillGradientMode.Режим заливки градиента данной фигуры.
Открытое свойство FixedTooltipText Получает или задает значение свойства домена FixedTooltipText.Текст, используемый для фиксированной подсказки. (Унаследовано от DiagramElement.)
Открытое свойство GeneratesDoubleDerived Получает или задает значение свойства домена GeneratesDoubleDerived.Если значение равно true, создается и базовый класс со всей функциональностью, и разделяемый класс для поддержки настройки посредством переопределений. (Унаследовано от DomainClass.)
Открытое свойство HasCustomConstructor Получает или задает значение свойства домена HasCustomConstructor.Значение true указывает на то, что пользовательский конструктор будет предоставлен в созданном коде. (Унаследовано от DomainClass.)
Открытое свойство HasDefaultConnectionPoints Получает или задает значение свойства домена HasDefaultConnectionPoints.Если значение равно true, фигура будет использовать верхнюю, нижнюю, левую и правую точки соединения в конструкторе.
Открытое свойство HelpKeyword Получает или задает значение свойства домена HelpKeyword.Необязательное ключевое слово, используемое для индексации справки F1 для данного элемента. (Унаследовано от NamedDomainElement.)
Открытое свойство Id Получает идентификатор элемента. (Унаследовано от ModelElement.)
Открытое свойство InheritanceModifier Получает или задает значение свойства домена InheritanceModifier.Определяет, является ли модификатор наследования классов .NET, созданных из доменного класса, отсутствующим, абстрактным или запечатанным. (Унаследовано от DomainClass.)
Открытое свойство InitialHeight Получает или задает значение свойства домена InitialHeight.Начальная высота данной фигуры в дюймах.
Открытое свойство InitialWidth Получает или задает значение свойства домена InitialWidth.Начальная ширина данной фигуры в дюймах.
Открытое свойство IsActive Получает флаг IsActive и проверяет, является ли элемент активным. (Унаследовано от ModelElement.)
Открытое свойство IsDeleted Получает флаг IsDeleted и проверяет, был ли элемент удален из модели. (Унаследовано от ModelElement.)
Открытое свойство IsDeleting Получает флаг IsDeleting и проверяет, удаляется ли элемент в данный момент из модели. (Унаследовано от ModelElement.)
Открытое свойство IsDescriptionTracking Получает или задает значение свойства домена IsDescriptionTracking.При значении true свойство Description отслеживает другие данные в определении DSL. (Унаследовано от AttributedDomainElement.)
Открытое свойство IsDisplayNameTracking Получает или задает значение свойства домена IsDisplayNameTracking.При значении true свойство DisplayName отслеживает другие данные в определении DSL. (Унаследовано от NamedDomainElement.)
Открытое свойство IsFixedTooltipTextTracking Получает или задает значение свойства домена IsFixedTooltipTextTracking.При значении true свойство FixedTooltipText отслеживает другие данные в определении DSL. (Унаследовано от DiagramElement.)
Открытое свойство IsNamespaceTracking Получает или задает значение свойства домена IsNamespaceTracking.При значении True свойство Namespace отслеживает другие данные в определении DSL. (Унаследовано от DomainClass.)
Открытое свойство Name Получает или задает значение свойства домена Name.Имя этого элемента. (Унаследовано от NamedDomainElement.)
Открытое свойство Namespace Получает или задает значение свойства домена Namespace.Пространство имен, связанное с данным доменным классом. (Унаследовано от DomainClass.)
Открытое свойство Notes Получает или задает значение свойства домена Notes.Неофициальные заметки, связанные с данным элементом. (Унаследовано от DomainElement.)
Открытое свойство OutlineColor Получает или задает значение свойства домена OutlineColor.Цвет контура данной фигуры.
Открытое свойство OutlineDashStyle Получает или задает значение свойства домена OutlineDashStyle.Стиль пунктира контура для данной фигуры.
Открытое свойство OutlineThickness Получает или задает значение свойства домена OutlineThickness.Толщина контура данной фигуры.
Открытое свойство Partition Получает или задает объект Partition, содержащий элемент. (Унаследовано от ModelElement.)
Открытое свойство Properties Получает список Properties. (Унаследовано от DomainClass.)
Защищенное свойство ProxyIsNameTracking (Унаследовано от NamedDomainElement.)
Открытое свойство RolesPlayed Получает список RolesPlayed.Роли, исполняемые классом. (Унаследовано от DomainClass.)
Открытое свойство Store Получает объект Store, содержащий элемент. (Унаследовано от ModelElement.)
Открытое свойство SubClasses Получает список SubClasses.Описание для Microsoft.VisualStudio.Modeling.DslDefinition.ClassHasBaseClass.BaseClass (Унаследовано от DomainClass.)
Открытое свойство TextColor Получает или задает значение свойства домена TextColor.Цвет, используемый для декораторов текста, связанных с этим элементом схемы. (Унаследовано от DiagramElement.)
Открытое свойство TooltipType Получает или задает значение свойства домена TooltipType.Если значение равно Fixed, в качестве подсказки используется фиксированный текст подсказки; если Variable, подсказка задается в пользовательском коде. (Унаследовано от DiagramElement.)

В начало страницы

Методы

  Имя Описание
Защищенный метод CalculateDescription Вычисление значения описания (Унаследовано от DomainClass.)
Защищенный метод CalculateName Вычисляет значение имени. (Унаследовано от NamedDomainElement.)
Защищенный метод CanMerge Возвращает значение, указывающее, можно ли добавить к данному элементу исходный элемент, представленный заданным корневым элементом ProtoElement. (Переопределяет DomainClass.CanMerge(ProtoElementBase, ElementGroupPrototype).)
Защищенный метод ChooseMergeTarget(ElementGroup) Выбирает целевой элемент, чтобы принять в качестве его дочернего элемента элемент, который пользователь хочет копировать, перетащить или создать. (Унаследовано от ModelElement.)
Защищенный метод ChooseMergeTarget(ElementGroupPrototype) Выбирает целевой элемент, чтобы принять в качестве его дочернего элемента элемент, который пользователь хочет копировать, перетащить или создать. (Унаследовано от ModelElement.)
Открытый метод Copy() Создает копию элемента в модели. (Унаследовано от ModelElement.)
Открытый метод Copy(IEnumerable<Guid>) Создает копию элемента и его дочерних связей и элементов. (Унаследовано от ModelElement.)
Открытый метод Delete() Удаляет элемент из модели. (Унаследовано от ModelElement.)
Открытый метод Delete(array<Guid[]) Удаляет элемент из модели. (Унаследовано от ModelElement.)
Открытый метод Equals Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод GetDomainClass Получает самый дальний в цепочке наследования доменный класс для данного элемента. (Унаследовано от ModelElement.)
Открытый метод GetFullName Получает полное имя данного класса. (Унаследовано от DomainClass.)
Открытый метод GetHashCode Служит хэш-функцией по умолчанию. (Унаследовано от Object.)
Открытый метод GetRelativeName Получает имя доменного класса относительно текущего пространства имен.Если текущее пространство имен совпадает с this.Namespace, возвращается this.Name.Если нет, возвращается this.GetFullName() (Унаследовано от DomainClass.)
Защищенный метод GetRoleCollection<TCollection, TElement>(Guid) Получает или создает коллекцию связанных элементов. (Унаследовано от ModelElement.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Открытый метод IsDerivedFrom Проверка, является ли этот класс производным от указанного класса. (Унаследовано от DomainClass.)
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Защищенный метод MergeConfigure Настройте только что объединенный DomainClass (Унаследовано от DomainClass.)
Защищенный метод MergeDisconnect Выполняет операцию напротив MergeRelate — то есть отключает заданный элемент из текущего одного (удаляет ссылки, созданные MergeRelate). (Переопределяет DomainClass.MergeDisconnect(ModelElement).)
Защищенный метод MergeRelate Вызывается процессом слияния, чтобы создать связь между данным целевым элементом и указанным исходным элементом.Обычно отношение "родитель-потомок" устанавливается между целевым (родительским) и исходным (дочерним) элементами, но можно задать любое отношение. (Переопределяет DomainClass.MergeRelate(ModelElement, ElementGroup).)
Защищенный метод OnCopy Вызывается, когда элемент был создан в виде копии другого элемента. (Унаследовано от ModelElement.)
Защищенный метод OnDeleted Вызывается при удалении этого элемента из модели. (Унаследовано от ModelElement.)
Защищенный метод OnDeleting Вызывается, когда этот элемент сейчас будет удален. (Унаследовано от ModelElement.)
Защищенный метод OnInheritanceModifierChanged Вызывается, когда изменяется InheritanceModifier DomainClass (Унаследовано от DomainClass.)
Защищенный метод OnNameChanged Имя измененного DiagramElement (Унаследовано от DiagramElement.)
Защищенный метод OnNamespaceChanged Вызывается, когда изменяется пространство имен (Namespace) DomainClass (Унаследовано от DomainClass.)
Защищенный метод OnResurrected Вызывается, когда элемент был добавлен в модели. (Унаследовано от ModelElement.)
Защищенный метод OnRolePlayerPositionChanged Вызывается при изменении позиции роли. (Унаследовано от ModelElement.)
Защищенный метод OnRolePlayerPositionChanging Вызывается, когда положение игрока роли изменяется. (Унаследовано от ModelElement.)
Открытый метод ToString Возвращает строку, представляющую текущий объект. (Унаследовано от Object.)

В начало страницы

Методы расширения

  Имя Описание
Открытый метод расширения AddExtension(Guid) Перегружен. Расширение этого ModelElement с вновь созданным экземпляром расширения определенного доменного типа.InvalidOperationException будет выдано, если элемент уже имеет расширение этого типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения AddExtension(Type) Перегружен. Расширение этого ModelElement с вновь созданным экземпляром расширения указанного типа.InvalidOperationException будет выдано, если элемент уже имеет расширение этого типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения AddExtension(DomainClassInfo) Перегружен. Расширение этого ModelElement с вновь созданным экземпляром расширения указанного доменного типа.InvalidOperationException будет выдано, если элемент уже имеет расширение этого типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения AddExtension(ExtensionElement) Перегружен. Расширение этого ModelElement с указанным расширением.Если элемент уже имеет расширение того же типа, будет вызвано исключение InvalidOperationException. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения AddExtension<T>() Перегружен. Расширение этого ModelElement с вновь созданным экземпляром расширения указанного типа.Если элемент уже имеет расширение того же типа, будет вызвано исключение InvalidOperationException. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения CanDelete Удаляет элемент из модели. (Определено в ImmutabilityExtensionMethods.)
Открытый метод расширения GetAllExtensions Возвращает перечислимый объект, который выполняет обход дерева элементов расширения, внедренных в данном ModelElement, сначала "в ширину". (Определено в ModelElementExtensionMethods.)
Открытый метод расширения GetBaseElement Возвращает корень виртуального объекта MEL, в котором участвует указанный ModelElement. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения GetExtension(Guid) Перегружен. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения GetExtension(Type) Перегружен. Получите ExtensionElement заданного типа из доступных расширений этого ModelElement.Если элемент не имеет такого расширения, вызывается исключение InvalidOperationException. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения GetExtension(DomainClassInfo) Перегружен. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения GetExtension<T>() Перегружен. Получите ExtensionElement заданного типа из доступных расширений этого ModelElement.Если элемент не имеет такого расширения, вызывается исключение InvalidOperationException. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения GetLocks Получить флаги блокировки для данного элемента.Это включает все блокировки, разрешенные в разделе, содержащем элемент. (Определено в ImmutabilityExtensionMethods.)
Открытый метод расширения IsExtendedBy(Guid) Перегружен. Запрос, расширен ли в настоящий момент данный ModelElement с помощью ExtensionElement определенного типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения IsExtendedBy(Type) Перегружен. Запрос, расширен ли в настоящий момент данный ModelElement с помощью ExtensionElement определенного типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения IsExtendedBy(DomainClassInfo) Перегружен. Запрос, расширен ли в настоящий момент данный ModelElement с помощью ExtensionElement определенного типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения IsLocked Проверка, имеется ли у данного элемента какая-либо блокировка из указанного набора блокировок (Определено в ImmutabilityExtensionMethods.)
Открытый метод расширения RemoveExtension(Type) Перегружен. Удаляет любое расширение данного ModelElement определенного типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения RemoveExtension(Guid) Перегружен. Удаляет любое расширение указанного элемента ModelElement определенного типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения RemoveExtension(DomainClassInfo) Перегружен. Удаляет любое расширение указанного элемента ModelElement определенного типа. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения RemoveExtension(ExtensionElement) Перегружен. Удаление заданного ExtensionElement из расширений данного ModelElement. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения SetLocks Задать флажки блокировки данного элемента (Определено в ImmutabilityExtensionMethods.)
Открытый метод расширения TryGetExtension(Guid) Перегружен. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения TryGetExtension(Type) Перегружен. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения TryGetExtension(DomainClassInfo) Перегружен. (Определено в ModelElementExtensionMethods.)
Открытый метод расширения TryGetExtension<T>() Перегружен. Получите ExtensionElement заданного типа из доступных расширений этого ModelElement.Если данный элемент не имеет такого расширения, результат будет равен null. (Определено в ModelElementExtensionMethods.)

В начало страницы

Поля

  Имя Описание
Открытое полеСтатический член DomainClassId Идентификатор класса домена фигуры.
Открытое полеСтатический член ExposesFillColorAsPropertyDomainPropertyId Идентификатор свойства домена ExposesFillColorAsProperty.
Открытое полеСтатический член ExposesFillGradientModeDomainPropertyId Идентификатор свойства домена ExposesFillGradientMode.
Открытое полеСтатический член ExposesOutlineColorAsPropertyDomainPropertyId Идентификатор свойства домена ExposesOutlineColorAsProperty.
Открытое полеСтатический член ExposesOutlineDashStyleAsPropertyDomainPropertyId Идентификатор свойства домена ExposesOutlineDashStyleAsProperty.
Открытое полеСтатический член ExposesOutlineThicknessAsPropertyDomainPropertyId Идентификатор свойства домена ExposesOutlineThicknessAsProperty.
Открытое полеСтатический член FillColorDomainPropertyId Идентификатор свойства домена FillColor.
Открытое полеСтатический член FillGradientModeDomainPropertyId Идентификатор свойства домена FillGradientMode.
Открытое полеСтатический член HasDefaultConnectionPointsDomainPropertyId Идентификатор свойства домена HasDefaultConnectionPoints.
Открытое полеСтатический член InitialHeightDomainPropertyId Идентификатор свойства домена InitialHeight.
Открытое полеСтатический член InitialWidthDomainPropertyId Идентификатор свойства домена InitialWidth.
Открытое полеСтатический член OutlineColorDomainPropertyId Идентификатор свойства домена OutlineColor.
Открытое полеСтатический член OutlineDashStyleDomainPropertyId Идентификатор свойства домена OutlineDashStyle.
Открытое полеСтатический член OutlineThicknessDomainPropertyId Идентификатор свойства домена OutlineThickness.

В начало страницы

Явные реализации интерфейса

  Имя Описание
Явная реализация интерфейсаЗакрытый метод IMergeElements.CanMerge Возвращает значение true, если этот элемент может выполнить слияние с содержимым прототипа. (Унаследовано от ModelElement.)
Явная реализация интерфейсаЗакрытый метод IMergeElements.ChooseMergeTarget(ElementGroup) (Унаследовано от ModelElement.)
Явная реализация интерфейсаЗакрытый метод IMergeElements.ChooseMergeTarget(ElementGroupPrototype) (Унаследовано от ModelElement.)
Явная реализация интерфейсаЗакрытый метод IMergeElements.MergeConfigure (Унаследовано от ModelElement.)
Явная реализация интерфейсаЗакрытый метод IMergeElements.MergeDisconnect (Унаследовано от ModelElement.)
Явная реализация интерфейсаЗакрытый метод IMergeElements.MergeRelate (Унаследовано от ModelElement.)

В начало страницы

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.Modeling.DslDefinition - пространство имен

Иерархия наследования

System.Object
  Microsoft.VisualStudio.Modeling.ModelElement
    Microsoft.VisualStudio.Modeling.DslDefinition.DomainElement
      Microsoft.VisualStudio.Modeling.DslDefinition.AttributedDomainElement
        Microsoft.VisualStudio.Modeling.DslDefinition.NamedDomainElement
          Microsoft.VisualStudio.Modeling.DslDefinition.DomainClass
            Microsoft.VisualStudio.Modeling.DslDefinition.DiagramElement
              Microsoft.VisualStudio.Modeling.DslDefinition.BaseShape
                Microsoft.VisualStudio.Modeling.DslDefinition.Shape
                  Microsoft.VisualStudio.Modeling.DslDefinition.CompartmentShape
                  Microsoft.VisualStudio.Modeling.DslDefinition.GeometryShape
                  Microsoft.VisualStudio.Modeling.DslDefinition.ImageShape