Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Agens от 23-01-2020, 15:26:56

Название: все о Spaces
Отправлено: Agens от 23-01-2020, 15:26:56
Возникла необходимость получить Room от Space, причем архитектура подключена связью.
Есть ли у Space свойство получения что-то типа Space.Parent или Room вообще не "вытянуть" без подключения к файлу связи с архитектурой?
Название: Re: все о Spaces
Отправлено: Александр Игнатович от 23-01-2020, 16:12:17
Можно, но с некоторыми ограничениями.

Посмотрите сначала видео здесь: http://help.autodesk.com/view/RVT/2018/ENU/?guid=GUID-8EC27F94-BFDC-42D1-B3B8-7FA750F4F39A
Тут, правда, один нюанс есть, о котором не сказано - нужно задать соответствие стадий между моделью архитектуры и моделью со Space-ами.

Если всё получилось правильно, то ты увидишь имя и номер помещения в параметрах пространства. Здесь архитектура подключена связанным файлом:

(https://i.postimg.cc/68v2Lpyw/space-assoc-room.png) (https://postimg.cc/68v2Lpyw)

Собственно, значения можно прочитать из соответствующих SPACE_ASSOC_ROOM_NAME и SPACE_ASSOC_ROOM_NUMBER.

А свойство Space.Room работает только для помещения в той же самой модели.

Ну или таки получить помещение из связанной модели, как бы тоже не большая проблема.
Название: Re: все о Spaces
Отправлено: Agens от 23-01-2020, 17:12:22
Просто у Space есть готовый метод Name, который дает Room(Name+Number)... SPACE_ASSOC_ROOM_NAME и SPACE_ASSOC_ROOM_NUMBER не заметил, спасибо...
// ----------------
BuiltInParameter.ROOM_NUMBER - тоже работает. ROOM_NUMBER = Номер, а SPACE_ASSOC_ROOM_NUMBER = Номер помещения
Название: Re: все о Spaces
Отправлено: Agens от 24-01-2020, 09:55:43
как унаследовать класс Space?

Код - C# [Выбрать]
  1.     public partial class MySpace : Space
  2.     {
  3.  
  4.     }

выдает "Ошибка   CS1729   'Space" не содержит конструктор, который принимает аргументы 0."
Название: Re: все о Spaces
Отправлено: Александр Игнатович от 24-01-2020, 09:58:27
Никак.

О наследовании классов из Revit API забудь. Revit API - тонкая прослойка между управляемым кодом Addin-а и native самого Revit-а.

Только аггрегация