【问题标题】:Revit API: Material Asset Parameters get and setRevit API:获取和设置材质资源参数
【发布时间】:2018-01-23 15:16:27
【问题描述】:

我正在尝试通过 RevitAPI 访问包含在特定资产中的数据。例如,我想操作身份数据并获取并最终设置制造商、型号、成本和 URL 的一些数据。 我怎样才能为其他资产实现相同的目标?

我正在阅读材料:

public IEnumerable<Material> GetMaterials(Document doc)
    {
        collector = new FilteredElementCollector(doc);

        return collector.OfClass(typeof(Material)).OfType<Material>();
    }

然后是参数:

public IEnumerable<Parameter> GetMaterialParameters(Material material)
    {
        List<Parameter> parameters = new List<Parameter>();
        var localParameters = material.ParametersMap;

        foreach (Parameter localParameter in localParameters)
        {
            parameters.Add(localParameter);
        }

        return parameters;
    }

但仍然无法找到这些属性的暴露位置。

【问题讨论】:

    标签: revit-api


    【解决方案1】:

    您真正需要的是最新更新的 Revit 2018.1 中引入的 Visual Materials API:

    在早期版本中实现您想要的要困难得多,甚至不可能。

    以下是一些或多或少徒劳的尝试:

    【讨论】:

    • 谢谢。但我找不到任何样品。有吗?
    【解决方案2】:

    最后,这就是我设法编辑参数的方式。

    private void AssignProductData_OnClick(object sender, RoutedEventArgs e)
        {
            var material = (MaterialItem)MaterialsCombo.SelectedItem;
    
            using (var transaction = new Transaction(doc))
            {
                transaction.Start("ChangeName");
    
                var parameterManufacturer = material.Material.get_Parameter(BuiltInParameter.ALL_MODEL_MANUFACTURER);
                parameterManufacturer.Set("Brand New Product");
    
                var parameterCost = material.Material.get_Parameter(BuiltInParameter.ALL_MODEL_COST);
                parameterCost.Set(1099.99);
    
                var parameterModel = material.Material.get_Parameter(BuiltInParameter.ALL_MODEL_MODEL);
                parameterModel.Set("R1223123KJNSDAS9089");
    
                var parameterUrl = material.Material.get_Parameter(BuiltInParameter.ALL_MODEL_URL);
                parameterUrl.Set("http://www.site.no/products/R1223123KJNSDAS9089");
    
                transaction.Commit();
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 2020-03-05
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多