I'm creating new line styles in Revit MEP 2013 through the API in VB.Net, and I've almost got everything figured out... except setting the line pattern. There doesn't seem to be a way to do this one, last step. Any ideas?
Here's what I have so far:
PublicFunction LoadStyle(ByVal n AsInteger) AsBoolean
Dim lineCat As Categories = m_RvtDoc.Settings.Categories
ForEach objCategory As Category In lineCat
If objCategory.Name = "Lines"Then
If objCategory.CanAddSubcategory = TrueThen
Try
Dim cat As Category = lineCat.NewSubcategory(objCategory, MEP(n, 6))
'set color
If MEP(n, 7) <> ""Then
Dim r, g, b AsInteger
r = MEP(n, 7)
g = MEP(n, 8)
b = MEP(n, 9)
Dim c As Autodesk.Revit.DB.Color = New Autodesk.Revit.DB.Color(r, g, b)
cat.LineColor = c
EndIf
'set lineweight
If MEP(n, 11) <> ""Then
cat.SetLineWeight(
CInt(MEP(n, 11)), GraphicsStyleType.Projection)
EndIf
'set line pattern
If MEP(n, 10) <> ""Then
'cat.LinePatternId = GetElementByName(GetType(LinePatternElement), MEP(n, 10))
EndIf
Catch
MsgBox(
"Line style " & MEP(n, 6) & " already exists.", MsgBoxStyle.Information, "Load Systems Error")
EndTry
Exit For
Else
MsgBox(
"Can't add line style.")
Exit For
EndIf
EndIf
Next
EndFunction
Thanks for the response, Joe. Would it be possible to check to see if it's exposed in Revit 2014? And are there any workarounds? This is very important for my project.
Thanks,
Dave Horger
Interface Engineering, Inc.
Yes, please fill this gap Autodesk so we can set the line style's line pattern via the API
Dear All,
I have added your comments to the Epic story, there is still plans to work on this, but still needs to be prioritzed agains all other requests.
Thank you very much for all your patience and collaboration.
Cheers,
Hey,
in Revit 2017 API, there is a new Category.SetLinePatternId method.
Seems that Autodesk provides a solution, finally.
Revitalizer
but SetLinePatternId() doesn't work, SetLineWeight() works fine along w/ LineColor
subCat.SetLineWeight((int)cat.GetLineWeight(GraphicsStyleType.Projection), GraphicsStyleType.Projection); // works OK
subCat.LineColor = cat.LineColor; // works OK
subCat.SetLinePatternId(cat.GetLinePatternId(GraphicsStyleType.Projection), GraphicsStyleType.Projection); // doesn't work
Can't find what you're looking for? Ask the community or share your knowledge.