How to Set Line Pattern in Line Style

Anonymous

How to Set Line Pattern in Line Style

Anonymous
Not applicable

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

 

 

0 Likes
Reply
8,252 Views
10 Replies
Replies (10)

Joe.Ye
Alumni
Alumni
Revit didn't expose the API to change category's line pattern. Revit engineering team already knew this request. Hope this will come not long.


Joe Ye
Contractor
Developer Technical Services
Autodesk Developer Network
0 Likes

Anonymous
Not applicable

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.

0 Likes

Joe.Ye
Alumni
Alumni
Thanks for your comments on the API wish. I passed on your comments on this request to the engineering team.


Joe Ye
Contractor
Developer Technical Services
Autodesk Developer Network
0 Likes

atiefenbach
Advocate
Advocate
+1 to adding this feature!
Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
0 Likes

jdbreazeale
Explorer
Explorer

+1 Please add this feature

0 Likes

boostyourbim
Advocate
Advocate

Yes, please fill this gap Autodesk so we can set the line style's line pattern via the API

rosalesduquej
Autodesk Support
Autodesk Support

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,



Jaime Rosales D.
Sr. Developer Consultant
Twitter | AEC ADN DevBlog

Anonymous
Not applicable

Yes, please add this! Has it been done yet? How many more years?

0 Likes

Revitalizer
Advisor
Advisor

Hey,

 

in Revit 2017 API, there is a new Category.SetLinePatternId method.

 

Seems that Autodesk provides a solution, finally.

 

 

Revitalizer




Rudolf Honke
Software Developer
Mensch und Maschine





Ning_Zhou
Advocate
Advocate

but SetLinePatternId() doesn't work, SetLineWeight() works fine along w/ LineColor

Ning_Zhou_0-1595755599925.png

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

0 Likes