欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Revit PromptForFamilyInstancePlacementOptions 族放置API

程序员文章站 2022-06-10 23:26:31
...

这段时间在做族库,在做到最后需要与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);
相关标签: Revit二次开发