私は当初、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();
}
ここで私が間違っていること、またはこの問題を解決する方法を誰かが知っていますか?
ありがとう