Как удалить схему из семейства?

Автор Тема: Как удалить схему из семейства?  (Прочитано 13728 раз)

0 Пользователей и 7 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Подскажите как удалить схему из семейства?

Ориентир на Family.DeleteEntity (Schema), но проблема в том, что не могу определить элемент Schema.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #1 : 23-11-2015, 15:21:10 »
но проблема в том, что не могу определить элемент Schema
Находите схему по ее ID. Schema.Lookup(Guid)

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #2 : 23-11-2015, 15:25:32 »
Находите схему по ее ID. Schema.Lookup(Guid)
Вроде нашел, но как теперь ее удалить. У нее нет метода Delete или Clear.

Код - vb.net [Выбрать]
  1. Dim sEntity As Entity = myFamily.GetEntity(Schema.Lookup(guid))

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #3 : 23-11-2015, 15:38:12 »
но как теперь ее удалить
Брр.. так что удалить то надо, схему или удалить сущность схемы у семейства?

Вы же сами написали,
Family.DeleteEntity (Schema)
но не могли найти схему. А я подсказал как ее найти:)

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #4 : 23-11-2015, 15:41:31 »
Брр.. так что удалить то надо, схему или удалить сущность схемы у семейства?

Вот, опять со мной такое... конечно же удалить...

Только вот она не удаляется.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #5 : 23-11-2015, 15:54:31 »
что удалить то надо, схему
или удалить сущность схемы у семейства
конечно же удалить...
Вопрос остается в силе. Что удалить?:)

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #6 : 24-11-2015, 06:32:01 »
А в чем разница между схемой и сущностью?

Может, под сущностью Вы подразумеваете ее содержимое? Если так, то мне бы лучше саму схему удалить.

Отмечено как Решение Пашин Евгений 24-11-2015, 10:59:00

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #7 : 24-11-2015, 08:35:25 »
Евгений,
проще всего это сравнить с программированием. Схема - это по сути класс, где описываются его название и свойства. А сущность - объект, экземпляр этого класса.

А тут уже зависит от того что вам нужно. Если схема вам больше совсем не нужна, например, создавали ее для тестирования, то имеет смысл ее удалить полностью. Это можно сделать с помощью статического метода Schema.EraseSchemaAndAllEntities. Это удалит из проекта саму схему, а также все сущности этой схемы.

Если есть сущность, привязанная к какому-то объекту, и нужно ее удалить, но сохранив при этом описание схемы в проекте, то Element.DeleteEntity

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #8 : 24-11-2015, 08:55:10 »
Виктор, правильно ли я понимаю?

1. Схема создается строкой 4 (Да/Нет)?:
Код - vb.net [Выбрать]
  1. Dim builder As New SchemaBuilder(guid)
  2. builder.SetSchemaName("Gallurgy")
  3. ...
  4. Dim schema As Schema = builder.Finish

2. Сущностью схемы является (Да/Нет)?:
Код - vb.net [Выбрать]
  1. Dim myEntity As New Entity(schema)

В RevitLookUp, для конкретного семейства, отображается как Entity with Schema [Gallurgy] <Entity>
Вот именно ее мне и надо удалить.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #9 : 24-11-2015, 09:07:21 »
1. Да
2. Да

Вот именно ее мне и надо удалить.
Element.DeleteEntity

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #10 : 24-11-2015, 09:28:05 »
Тут и есть загвоздка:
Element.DeleteEntity

Код - vb.net [Выбрать]
  1. myFamily.DeleteEntity (Сюда_Помещается_Схема)

Но как ее определить?

Код - vb.net [Выбрать]
  1. Dim mySchema As Schema = ???

Dim mySchema As Schema = Schema.Lookup(Guid) - не работает!


может какую библиотеку не подключил?

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #11 : 24-11-2015, 09:36:57 »
Dim mySchema As Schema = Schema.Lookup(Guid) - не работает!
Евгений, я не экстрасенс. Подробней надо объяснить ситуацию. Что именно не работает? Появляется ошибка? Возвращается null? Возвращается верная схема, но при удалении ничего не происходит? При удалении ошибка?

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #12 : 24-11-2015, 10:26:30 »
Подробней надо объяснить ситуацию.

Приношу извинение. Ошибка: «Обращение к локальной переменной schema до ее объявления невозможно.»

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как удалить схему из семейства?
« Ответ #13 : 24-11-2015, 10:31:25 »
Евгений, ошибка ведь говорящая:) Ошибка в коде. Попробую угадать, код такой:?
Код - C# [Выбрать]
  1. Dim mySchema As Schema = Schema.Lookup(Guid)
  2. ...
  3. myFamily.DeleteEntity (schema)
  4.  
?

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Как удалить схему из семейства?
« Ответ #14 : 24-11-2015, 10:34:56 »
Dim mySchema As Schema = Schema.Lookup(Guid)

Dim mySchema As Schema = Schema.Lookup(Guid) ругается на schema, подчеркивает синим цветом.

А мой код:

Код - vb.net [Выбрать]
  1.                     Dim mySchema As Schema = schema.Lookup(guid)
  2.  
  3.                     acElFam.DeleteEntity(mySchema)