我正在为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);
此代码在Revit应用程序中启用Modify | Place structural column
工具。它可以根据需要工作,但不允许用户在垂直列和倾斜列之间切换。此选项设置为运行上述代码之前设置的任何内容。
我尝试使用以下代码运行PromptForFamilyInstancePlacement
之前设置符号参数:
symbol.get_Parameter(BuiltInParameter.SLANTED_COLUMN_TYPE_PARAM).Set(value);
但上面的get_Parameter()
会返回null
。
在提示用户放置列之前,是否有将列类型设置为垂直列的方法?还有一种预设柱高的方法吗?
答案 0 :(得分:0)
很遗憾,您无法预设列高,但您可以调整之后直接创建的项目的自由端。你应该返回FamilyInstance
,所以如果你再次抓住它,那么你可以调整它的自由端。
您可以通过循环显示系列中的符号来提示用户放置正确的符号。尝试下面的代码段并检查以确保在放置之前生成的符号是您想要的符号:
FamilySymbol familySymbol = family.Symbols.ForwardIterator().Current as FamilySymbol;