其实一直想静下心来好好的总结一下visum的COM。其实从run script 程序中就可以看出visum目前只适用两种语言的接口: 一个是VBA ,另一个就是Python。
读取和编写这两种语言的script语句来构建模型,是在我学visum还不到2个月的时候。如果说VBA还和VB有点相似的话,那么python是之前一直没有接触过的。凭着我那编程的三脚猫功夫,花了一周的时间读完简明Python教程,觉得这本书的确很浅显易懂,值得初学者看看。
首先说下对于matrix的处理:
假设对一个OD的所有参数进行乘以一个factor
VBA的script如下:
AllZones = visum.Net.Zones.GetAll
lastzone = UBound(AllZones)
For i = 0 To 13
Set mat = visum.Net.ODMatrices.ItemByKey(matrixNos(i))
Set newmat = visum.Net.ODMatrices.ItemByKey(newmatrixNos(i))
matsum = mat.GetODSum()
factor = factorNos(i)/matsum
matarray = mat.GetValues()
newmatarray = newmat.GetValues()
For j = 0 To lastzone
For k = 0 To lastzone
a = matarray(j, k)
newmatarray(j, k) = a* f