1

我正在为 Revit 2014 编写一个插件。它的一个功能是由用户放置一个垂直列。PromptForFamilyInstancePlacementRevit API 允许用户使用我正在使用的方法放置族实例,如下所示:

//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

在提示用户放置列之前,是否有将列类型设置为垂直列的方法?还有一种方法可以预设柱高吗?

4

1 回答 1

0

不幸的是,您无法预设列高,但您可以调整之后直接创建的项目的自由端。你应该返回 a FamilyInstance,所以如果你再次抓住它,那么你可以调整它的自由端。

您可以通过循环浏览系列中的符号来提示用户放置正确的符号。尝试下面的代码片段并检查以确保生成的符号是您在放置之前想要的符号:

FamilySymbol familySymbol = family.Symbols.ForwardIterator().Current as FamilySymbol;
于 2015-02-07T21:30:52.883 回答