0

私は当初、Bentley のプログラミング フォーラムでこの質問をすることを計画していました。彼らは、私がモデル化するために使用していた C# の質問に対して同様の回答を持っていたからです。しかし、フォーラム用に作成したアカウントが機能していないようです。

コードの目的は、線種、色、線の太さ、そして最後に線種パラメータに分類され、スケールとコーナー モードとして知られる 2 つの設定を設定することです。

背景として、私は VBA よりも C# に精通しているため、何かを見落としている可能性があります。

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:「オブジェクトはこのメソッドまたはプロパティをサポートしていません」が表示されるのはこの行です。ただし、これを上記の C# アプローチ (以下に引用) と比較すると、大きな違いは見当たりません。

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();
}

ここで私が間違っていること、またはこの問題を解決する方法を誰かが知っていますか?

ありがとう

4

1 に答える 1

0

Jan Slegrが Bentley フォーラムで回答を提供してくれたので、やっとアクセスできました。

set = なしでメソッドが呼び出された場合、VBA では括弧が使用されないため、それらを削除する必要があります。

oLineElement.SetLineStyleParameters oParams
于 2016-04-07T12:10:44.333 に答える