在将其导入 Revit 2017.exe 之前,如何使用 Revit API 读取 Revit 族属性
How can I read Revit Family Properties using Revit API before importing it into the Revit 2017.exe
我是一名在建筑设计公司 (Archcorp.biz) 工作的软件开发人员。在这里,我们正在使用 Revit API 为 Revit 2017 开发自定义插件。我想知道在将其导入 Revit 2017 编辑器之前是否可以读取族类型和实例属性?如果是,将不胜感激一些初步指南。谢谢。
有一个名为 BasicFileInfo
http://www.revitapidocs.com/2018/f7a75811-b2ec-8b4c-10d3-6ed0eadf4551.htm 的 class 可用,它可以在不打开文件 (rvt) 的情况下为您提供一些基本信息。
这里还介绍了一种方法,可以在不实际打开的情况下提取一些在系列中设置了值的参数。 http://thebuildingcoder.typepad.com/blog/2009/11/extract-part-atoms.html
经过几个小时的努力,我终于想出了一个解决方案。我所要做的就是使用 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();
}
我是一名在建筑设计公司 (Archcorp.biz) 工作的软件开发人员。在这里,我们正在使用 Revit API 为 Revit 2017 开发自定义插件。我想知道在将其导入 Revit 2017 编辑器之前是否可以读取族类型和实例属性?如果是,将不胜感激一些初步指南。谢谢。
有一个名为 BasicFileInfo
http://www.revitapidocs.com/2018/f7a75811-b2ec-8b4c-10d3-6ed0eadf4551.htm 的 class 可用,它可以在不打开文件 (rvt) 的情况下为您提供一些基本信息。
这里还介绍了一种方法,可以在不实际打开的情况下提取一些在系列中设置了值的参数。 http://thebuildingcoder.typepad.com/blog/2009/11/extract-part-atoms.html
经过几个小时的努力,我终于想出了一个解决方案。我所要做的就是使用 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();
}