How to Set Line Pattern in Line Style

How to Set Line Pattern in Line Style

Anonymous
適用対象外
8,454件の閲覧回数
10件の返信
メッセージ1/11

How to Set Line Pattern in Line Style

Anonymous
適用対象外

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 件のいいね
8,455件の閲覧回数
10件の返信
返信 (10)
メッセージ2/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 件のいいね
メッセージ3/11

Anonymous
適用対象外

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 件のいいね
メッセージ4/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 件のいいね
メッセージ5/11

atiefenbach
Advocate
Advocate
+1 to adding this feature!
Anthony Tiefenbach
BIM Manager
HuntonBrady Architects
0 件のいいね
メッセージ6/11

jdbreazeale
Explorer
Explorer

+1 Please add this feature

0 件のいいね
メッセージ7/11

boostyourbim
Advocate
Advocate

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

メッセージ8/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
メッセージ9/11

Anonymous
適用対象外

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

0 件のいいね
メッセージ10/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





メッセージ11/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 件のいいね