How to Set Line Pattern in Line Style

How to Set Line Pattern in Line Style

Anonymous
Not applicable
8,456 Views
10 Replies
Message 1 of 11

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
8,457 Views
10 Replies
Replies (10)
Message 2 of 11

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
Message 3 of 11

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
Message 4 of 11

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
Message 5 of 11

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

jdbreazeale
Explorer
Explorer

+1 Please add this feature

0 Likes
Message 7 of 11

boostyourbim
Advocate
Advocate

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

Message 8 of 11

rosalesduquej
Alumni
Alumni

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
Message 9 of 11

Anonymous
Not applicable

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

0 Likes
Message 10 of 11

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





Message 11 of 11

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