管道衣架 - 放置族实例 Revit API

Duct hanger - place family instance Revit API

我正在尝试使用 API (c#) 放置一个家庭。

当使用采用(位置、符号、主机、级别、结构)的 NewFamiltInstace 重载方法时 - 我希望在我插入的级别和主机(管道)。

相反 - 我在 一楼 得到了风管衣架,不管我在做什么,有人能理解为什么吗,我应该怎么做才能把它放在想要的水平?

我的交易代码: '''

using (Transaction trans = new Transaction(doc, "Place Family"))
{
trans.Start();


int indx = 0;
foreach (XYZ hanger_xyz in hangerCoordinates)
{

if (!hangerSymbol.IsActive)
{
hangerSymbol.Activate();
}

doc.Create.NewFamilyInstance(hanger_xyz, hangerSymbol,duct,level, Autodesk.Revit.DB.Structure.StructuralType.NonStructural);

}

trans.Commit();
}

'''

请研究 Revit SDK 示例 FabricationPartLayout。那会解决你的问题。示例可从 Revit Developer Center.

获得

想通了。

在测试了 newFamilyInstance 的所有 11 个重载方法及其所需参数,并使用 RevitLookUp 进行窥探之后,我设法获得了正确的重载方法,即:

FamilyInstance familyInstance = doc.Create.NewFamilyInstance(face, hanger_xyz, new XYZ(0, 1, 0), hangerSymbol);

face==> 作为 Referemce 对象(从我从 GeoElement 中获得的人脸中提取它,我从所需级别的地板上获得)

hanger_xyz==>XYZ 位置

new XYZ(0,1,0)==> 连接到 cielling 主机时的族方向(从 revitLookUp 获取)

hangerSymbol ==> 家族符号。

干杯!