这个呢private string GetProjectParam(Autodesk.Revit.DB.Document revitDoc) { StringBuilder strBuild = new StringBuilder(); BindingMap map = revitDoc.ParameterBindings; DefinitionBindingMapIterator dep = map.ForwardIterator(); while (dep.MoveNext()) { Definition definition = dep.Key; string definitionName = definition.Name; ParameterType parameterType = definition.ParameterType; InstanceBinding instanceBinding = dep.Current as InstanceBinding; if (instanceBinding != null) { CategorySet categorySet = instanceBinding.Categories; strBuild.AppendLine(string.Format("Name:{0} Type:{1} CategorySet:{2}", definitionName, parameterType, categorySet.GetType().ToString())); } else { strBuild.AppendLine(string.Format("Name:{0} Type:{1}", definitionName, parameterType)); } } return strBuild.ToString(); }
时间: 2023-06-19 22:09:30 浏览: 77
这段代码是用于获取 Revit 文档中所有参数绑定的信息。首先,它获取文档的参数绑定映射,然后遍历映射中的每个定义绑定。对于每个定义绑定,它获取定义的名称和参数类型,并检查当前绑定是否为实例绑定。如果是实例绑定,则获取它所绑定的类别集合,并将所有这些信息作为字符串追加到 strBuild 对象中。最后,它将 strBuild 对象转换为字符串并返回。
相关问题
System.MissingMethodException HResult=0x80131513 Message=找不到方法:“Double Autodesk.Revit.DB.UnitUtils.ConvertFromInternalUnits(Double, Autodesk.Revit.DB.DisplayUnitType)”。 Source=waterfilter StackTrace: at waterfilter.Class1.Trans(String location, String origin) in C:\Users\Admin\Desktop\CSharpTest\waterfilter\Class1.cs:line 412 at waterfilter.Class1.Execute(ExternalCommandData commandData, String& message, ElementSet elements) in C:\Users\Admin\Desktop\CSharpTest\waterfilter\Class1.cs:line 195 at AddInManager.AIM.RunActiveCommand(ExternalCommandData data, String& message, ElementSet elements)
根据您提供的错误信息,看起来是您在使用C#编写的程序中出现了一个错误。错误信息显示找不到方法"Double Autodesk.Revit.DB.UnitUtils.ConvertFromInternalUnits(Double, Autodesk.Revit.DB.DisplayUnitType)"。这可能是由于您的程序中缺少必要的引用或没有正确地使用Revit API导致的。
要解决这个问题,您可以尝试以下几个步骤:
1. 检查引用:确保您的项目引用了正确的Revit API程序集,并且版本与您当前使用的Revit版本相匹配。您可以在Visual Studio中打开项目属性,然后检查引用列表。
2. 确认方法存在:确保您在代码中正确地调用了"ConvertFromInternalUnits"方法,并且方法的签名与API文档中所示的一致。
3. 检查命名空间:确认您在代码文件的顶部使用了正确的命名空间引用。在这种情况下,应该包含"Autodesk.Revit.DB"命名空间。
4. 清理和重建项目:有时候编译错误可能是由于缓存或生成文件的问题引起的。您可以尝试清理并重新生成项目,以确保所有文件都是最新的。
如果上述步骤仍然无法解决问题,那么可能需要更详细地检查您的代码和项目设置,以确定问题所在。您可以在相关的开发者社区或论坛上寻求帮助,以获得更具体的建议和解决方案。
var reference = uidco.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
这是一行C#代码,用于在Autodesk Revit软件中选择一个元素对象。具体来说,它使用uidoc(UI文档)对象的Selection属性中的PickObject方法,该方法需要指定要选择的对象类型。在此示例中,指定的对象类型为Element,因此选择的是在Revit文档中的元素对象。选择后,该方法会返回一个对所选对象的引用。此引用可以用于在后续代码中操作所选对象。
阅读全文