这段时间在做族库,在做到最后需要与Revit连同时,希望可以用户选择下载然后直接在Revit中布置构件,查找API ,发现可以使用PromptForFamilyInstancePlacementOptions方法实现族放置。
代码 比较简单,只不过需要记住,由于PromptForFamilyInstancePlacementOptions会自己创建一个事务,所以使用的话需要将此方法挪出事务。
code:
Family family;
using (Transaction trans = new Transaction(app.ActiveUIDocument.Document,"load family"))
{
trans.Start();
var loadFamily = app.ActiveUIDocument.Document.LoadFamily(
localPath + ttn.Name + ".rfa", new RevitLoadFamily(),
out family);
//如果下载失败则提示
if (!loadFamily)
{
MessageBox.Show(ttn.Name +
$"cant find the family , \r\n localPath:{localPath + ttn.Name + ".rfa"}");
return;
}
trans.Commit();
}
var symbol =
app.ActiveUIDocument.Document.GetElement(family.GetFamilySymbolIds().First()) as
FamilySymbol;
app.ActiveUIDocument.PromptForFamilyInstancePlacement(symbol);
版权声明:本文为qq_41059339原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。