Message 1 of 3
Possible bug? LinePatternElement.GetLinePattern returns null with a valid ElementId
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I'm unable to return the LinePattern object from a GraphicStyle which has a valid line pattern Id. Using Revit 2022.
For example the built-in <Insulation Batting Lines> has a line pattern id associated as GetLinePatternId() returns the built in (negative) element id.
When I attempt to retrieve the LinePattern object via LinePatternElement.GetLinePattern(doc, linePatternId) it always returns null. The API documentation states that the linePatternId input can be "The ElementId of the LinePatternElement or the built-in line pattern id."
Here is a code snippet in Python to test (I'm doing a quick test in Dynamo):
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
doc = DocumentManager.Instance.CurrentDBDocument
lineStyle = doc.Settings.Categories.get_Item(BuiltInCategory.OST_Lines)
lineStyleSubTypes = lineStyle.SubCategories
lineStyleAttributesList = []
for category in lineStyleSubTypes:
gs = category.GetGraphicsStyle(GraphicsStyleType.Projection)
lineStyleAttributesList.Add(gs)
gs1 = lineStyleAttributesList[0]
cat = gs1.GraphicsStyleCategory
linePatternId = cat.GetLinePatternId(GraphicsStyleType.Projection)
linePattern = LinePatternElement.GetLinePattern(doc, linePatternId)
OUT = linePattern