如何使用 Revit API 读取 Revit 族属性,然后再将其导入 Revit 2017.exe

问题描述 投票:0回答:2

我是一名在建筑设计公司工作的软件开发人员。在这里,我们正在使用 Revit API 为 Revit 2017 开发自定义插件。我想知道在将族类型和实例属性导入 Revit 2017 编辑器之前是否可以读取族类型和实例属性?如果是,希望得到一些初步指导。

c# revit-api
2个回答
1
投票

有一个名为

BasicFileInfo
http://www.revitapidocs.com/2018/f7a75811-b2ec-8b4c-10d3-6ed0eadf4551.htm 的类,无需打开即可为您提供有关文件(rvt)的一些基本信息它。

这里还描述了一种方法,可以提取一些在族中设置了值的参数,而无需实际打开它。 http://thebuildingcoder.typepad.com/blog/2009/11/extract-part-atoms.html


0
投票

经过几个小时的努力,我终于想出了一个解决方案。我所要做的就是使用

application.OpenDocumentFile(FamilyPath);
方法读取 Revit 系列文件。以下代码将帮助任何人提取 Revit 族类型信息。

    private void ExtractFamilyInfo(Application app)
    {
        //A placeholder to store types information
        string types = "Family Types: ";


        //Open Revit Family File in a separate document
        var famDoc = app.OpenDocumentFile(FamilyPath);

        //Get the familyManager instance from the open document
        var familyManager = famDoc.FamilyManager;

        //Get the reference of revit family types
        FamilyTypeSet familyTypes = familyManager.Types;
        //Set iteration to forward
        FamilyTypeSetIterator familyTypesItor = familyTypes.ForwardIterator();
        familyTypesItor.Reset();

        //Loop through all family types
        while (familyTypesItor.MoveNext())
        {
            FamilyType familyType = familyTypesItor.Current as FamilyType;
            //read all family type names
            types += "\n" + familyType.Name;
        }

        //Display text on the UI
        DefaultControl.Instance.PropertyText.Text = types.ToString();

    }
© www.soinside.com 2019 - 2024. All rights reserved.