MicroStation VBA 模型扩展数据的操作

'设置模型的扩展数据
Sub&nbspSetModelXdata(xdModel&nbspAs&nbspModelReference,&nbspxdAppName&nbspAs&nbspString,&nbspxdType&nbspAs&nbspMsdXDatumType,&nbspxdvalue)
Dim&nbspXdata()&nbspAs&nbspXDatum
Dim&nbspxd_i&nbspAs&nbspInteger
If&nbspxdModel.HasXData(xdAppName)&nbspThen
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspXdata&nbsp=&nbspxdModel.GetXData(xdAppName)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspFor&nbspxd_i&nbsp=&nbspLBound(Xdata)&nbspTo&nbspUBound(Xdata)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWith&nbspXdata(xd_i)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspIf&nbsp.Type&nbsp=&nbspxdType&nbspThen&nbsp.value&nbsp=&nbspxdvalue
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspEnd&nbspWith
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspNext
Else
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp'AppendXDatum&nbspXdata,&nbspmsdXDatumTypeControlString,&nbsp"{"
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspAppendXDatum&nbspXdata,&nbspxdType,&nbspxdvalue
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp'AppendXDatum&nbspXdata,&nbspmsdXDatumTypeControlString,&nbsp"}"
End&nbspIf
xdModel.SetXData&nbspxdAppName,&nbspXdata
End&nbspSub

'得到模型的扩展数据
Function&nbspgetModelXdata(xdModel&nbspAs&nbspModelReference,&nbspxdAppName&nbspAs&nbspString,&nbspxdType&nbspAs&nbspMsdXDatumType)
Dim&nbspXdata()&nbspAs&nbspXDatum
Dim&nbspxd_i&nbspAs&nbspInteger
If&nbspxdModel.HasXData(xdAppName)&nbspThen
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspXdata&nbsp=&nbspxdModel.GetXData(xdAppName)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspFor&nbspxd_i&nbsp=&nbspLBound(Xdata)&nbspTo&nbspUBound(Xdata)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWith&nbspXdata(xd_i)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspIf&nbsp.Type&nbsp=&nbspxdType&nbspThen&nbspgetModelXdata&nbsp=&nbsp.value
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspEnd&nbspWith
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspNext
Else
getModelXdata&nbsp=&nbsp""
End&nbspIf
End&nbspFunction

注意,在第二个函数的定义时没有明确指定其返回类型,是因为扩展数据的值有多种类型,使用了VB的自由变量,这些函数在本人开发的断面处理程序中能正常运行。

发表评论

您的邮箱不会被公开。* 为必填项