Revit PromptForFamilyInstancePlacementOptions 族放置API

这段时间在做族库,在做到最后需要与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版权协议,转载请附上原文出处链接和本声明。