首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在LineStyleParameters VBA中设置MicroStation

在LineStyleParameters VBA中设置MicroStation
EN

Stack Overflow用户
提问于 2016-04-06 16:02:39
回答 1查看 1.7K关注 0票数 0

我本来打算在宾利论坛上问这个问题,因为他们有C#问题的类似回答,我用它来模拟我的程序。然而,我为论坛创建的帐户似乎不起作用。

代码的目的是设置线条风格,颜色,线条重量,最后是两个设置,这是分类的线型参数,称为比例尺和角模式。

作为背景,我对C#的了解要比VBA熟悉得多,这可能会使我错过一些东西,但我所使用的解决方案与上面的链接中突出显示的C#方法类似(我偶然发现了这种方法):

代码语言:javascript
复制
Private Sub AdjustStyleToByLevel(lvlName As String)

' Set up level definitions
Dim oLevel As Level
Set oLevel = ActiveDesignFile.Levels(lvlName)

' Set up scan criteria
Dim oScanCriteria As ElementScanCriteria
Set oScanCriteria = New ElementScanCriteria

oScanCriteria.ExcludeAllLevels
oScanCriteria.IncludeLevel oLevel

Dim oEnumerator As ElementEnumerator
Set oEnumerator = ActiveModelReference.Scan(oScanCriteria)

Dim oElement As Element

Do While oEnumerator.MoveNext
    Set oElement = oEnumerator.Current

    If oElement.IsTraversableElement Then
        Dim oLineElement As LineElement
        Set oLineElement = oElement

        Set oLineElement.LineStyle = ByLevelLineStyle
        oLineElement.Color = ByLevelColor               ' -1
        oLineElement.LineWeight = ByLevelLineWeight     ' -1

        ' Define and set the Line Style settings
        Dim oParams As LineStyleParameters
        Set oParams = oElement.GetLineStyleParameters

        oParams.ScaleFactor = Share.ChartScale / 100
        oParams.SetRunThroughCorners

        oLineElement.SetLineStyleParameters (oParams)
        oLineElement.Rewrite
    End If
Loop

End Sub

oLineElement.SetLineStyleParameters (oParams)行给出了错误438:“Object不支持此方法或属性”。然而,当将它与上面提到的C#方法(下面引用)进行比较时,我没有注意到一个重大的区别。

代码语言:javascript
复制
public void ChangeLineStyleScale()
{
    BCOM.Application msApp = BMI.Utilities.ComApp;
    BCOM.LineElement oLine = msApp.ActiveModelReference.GetElementByID64(15092) as BCOM.LineElement;
    BCOM.LineStyleParameters lsParams = oLine.GetLineStyleParameters();
    lsParams.ScaleFactor = 2.0;
    oLine.SetLineStyleParameters(lsParams);
    oLine.Rewrite();
}

有没有人知道我在这里做错了什么,或者如何解决这个问题?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 12:10:44

我终于访问了宾利论坛上的简·斯莱格提供了答复

如果调用方法时不带set =,则在VBA中不使用括号,因此必须删除它们:

代码语言:javascript
复制
oLineElement.SetLineStyleParameters oParams
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36456402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档