Revit API - предлагать пользователю создать вертикальный столбец

Я пишу плагин для Revit 2014. Одна из его функций - размещение пользователем вертикального столбца. Revit API позволяет размещать экземпляры семейств пользователем с помощью метода PromptForFamilyInstancePlacement, который я использую, например:

//PillarSymbols is a list containing symbols of various columns available, loaded previously from a file
FamilySymbol symbol = PillarsSymbols.Single(x => x.Kind == selected.Kind).Symbol;
_commandData.Application.ActiveUIDocument.PromptForFamilyInstancePlacement(symbol);

Этот код включает инструмент Modify | Place structural column в приложении Revit. Он работает по желанию, но не позволяет пользователю переключаться между вертикальным столбцом и наклонным столбцом. Для этого параметра установлено значение, которое было установлено перед запуском приведенного выше кода.

Я попытался установить параметры символа перед запуском PromptForFamilyInstancePlacement, используя:

symbol.get_Parameter(BuiltInParameter.SLANTED_COLUMN_TYPE_PARAM).Set(value);

но get_Parameter() выше возвращает null.

Есть ли способ установить тип столбца «Вертикальный столбец», прежде чем предлагать пользователю разместить столбец? Также есть ли способ предварительно установить высоту столбца?


person Richard Ryszka    schedule 21.07.2014    source источник


Ответы (1)


К сожалению, вы не можете предварительно установить высоту столбца, но вы можете настроить свободный конец элемента, созданного сразу после этого. Вы должны вернуть FamilyInstance, поэтому, если вы возьмете его снова, вы можете отрегулировать его свободный конец.

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

FamilySymbol familySymbol = family.Symbols.ForwardIterator().Current as FamilySymbol;
person prestonsmith    schedule 07.02.2015
comment
Спасибо @prestonsmith за ответ. К сожалению, я не могу предложить пользователю выбрать правильный символ из-за особых требований упомянутого плагина, которые сейчас неактуальны. В итоге я нашел обходной путь: 1) попросите пользователя разместить столбцы любого типа, который будет выбран в данный момент (вертикальный / наклонный) 2) прочитать местоположения и повороты экземпляров столбцов, размещенных пользователем 3) удалить эти экземпляры 4) разместить мои собственные вертикальные экземпляры с желаемой высотой - person Richard Ryszka; 09.02.2015