RevitAPI“普通参数”和“类型属性参数”的区别学步园

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RevitAPI“普通参数”和“类型属性参数”的区别学步园
System.Text;
using WinForm = System.Windows.Forms;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB.Mechanical;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.DB.ExtensibleStorage;
using Autodesk.Revit.DB.Plumbing;
using Autodesk.Revit.DB.Architecture;
using System.Xml;
namespace RevitCodes
{
[TransactionAttribute(Autodesk.Revit.Attributes.Transaction Mode.Manual)]
public class cmdParameter : IExternalCommand
{
public Result Execute(ExternalCommandData commandDat a, ref string messages, ElementSet elements)
{
UIApplication uiApp = commandData.Application;
Document doc = uiApp.ActiveUIDocument.Document;
Selection sel = uiApp.ActiveUIDocument.Selection;
Transaction ts = new Transaction(doc, "");
ts.Start();
//选中的元素,这里选中一个管道Pipe
Element elemPick = null;
foreach (Element elem in sel.Elements)
{
elemPick = elem;
break;
}
//遍历元素的普通参数
string strParameter = "";
foreach (Parameter p in elemPick.Parameters)
{
strParameter += p.Definition.ParameterGroup + "," + p.Defi + "," + p.AsValueString() + "\n";
}
TaskDialog.Show("parameter", strParameter);
//遍历元素的类型属性
Pipe pipe = elemPick as Pipe;
foreach (Parameter p in pipe.PipeType.Parameters)
{
if ( == "材质")
{
//元素的参数值可能是一个元素,比如材质的参数值是一个Material元素
PipeMaterialType pipeMater = doc.get_Element(p.AsElemen tId()) as PipeMaterialType;
//材质还分管道材质这里不能转化为Material
TaskDialog.Show("类型属性", + "," + );
}
}
//系统包含的材质元素
string strMaterial = "";
Materials materials = doc.Settings.Materials;
foreach (Material ma in materials)
{
strMaterial += + "\n";
}
TaskDialog.Show("Material", strMaterial);
mit();
return Result.Succeeded;
}
//元素的参数,参数组,即属性面版中可以折叠的部分,这里读Pipe
public Parameter FindParameter(Element element)
{
Parameter foundParameter = null;
int i = 0;
foreach (Parameter parameter in element.Parameters)
{
//BuiltInParameterGroup.PG_MECHANICAL//机械
//BuiltInParameterGroup.PG_CONSTRAINTS//限制条件
//BuiltInParameterGroup.PG_GEOMETRY//尺寸标注
//BuiltInParameterGroup.PG_PHASING//阶段化
//BuiltInParameterGroup.PG_IDENTITY_DATA//标识数据
//BuiltInParameterGroup.PG_INSULATION//绝缘层
if (BuiltInParameterGroup.PG_GEOMETRY == parameter.Def inition.ParameterGroup)
{
TaskDialog.Show("g", );
i += 1;
}
Definition definition = parameter.Definition;//参数的基类
//过滤参数
if (definition.ParameterGroup == BuiltInParameterGroup.PG _MATERIALS &&
definition.ParameterType == ParameterType.Material)
{
foundParameter = parameter;
break;
}
}
TaskDialog.Show("i", i + "个");
return foundParameter;
}
}
}。

相关文档
最新文档