A structure style controls the visual appearance of structures in a document. All structure style objects are stored in the CivilDocument.Styles.StructureStyles property. Structure styles have four methods for controlling general appearance attributes and three properties for controlling display attributes that are specific to structures. The methods GetDisplayStylePlan|Profile|Section() and GetHatchStyleProfile() all take a parameter describing the feature being modified and return a reference to the DisplayStyle or HatchDisplayStyle object controlling common display attributes such as line styles and color. The properties PlanOption, ProfileOption, SectionOption, and ModelOption set the display size of the structure and whether the structure is shown as a model of the physical object or only symbolically. A structure object is given a style by assigning the Structure.StyleId or Structure.StyleName property to a StructureStyle object.
This sample attempts to create a new structure style object and set some of its properties. If the style already exists, it changes the existing style:
Public Function CreateStructureStyle(ByVal sStyleName As String) As StructureStyle
Dim oStructureStyle As StructureStyle
Dim oStructureStyleId As ObjectId
Dim trans As Transaction = tm.StartTransaction()
Try
oStructureStyleId = g_oDocument.Styles.StructureStyles.Add(sStyleName)
Catch
End Try
If (oStructureStyleId = ObjectId.Null) Then
Try
oStructureStyleId = g_oDocument.Styles.StructureStyles.Item(sStyleName)
Catch
End Try
If (oStructureStyleId = ObjectId.Null) Then
MsgBox("Could not create or use a structure style with the name:" & sStyleName)
CreateStructureStyle = Nothing
Exit Function
End If
End If
oStructureStyle = trans.GetObject(oStructureStyleId, OpenMode.ForWrite)
oStructureStyle.GetDisplayStylePlan(StructureDisplayStylePlanType.Structure).Color = Color.FromRgb(255, 191, 0) ' orange
oStructureStyle.GetDisplayStylePlan(StructureDisplayStylePlanType.Structure).Visible = True
oStructureStyle.PlanOption.MaskConnectedObjects = False
oStructureStyle.PlanOption.SizeType = StructureSizeOptionsType.UseDrawingScale
oStructureStyle.PlanOption.Size = 0.0035
oStructureStyle.GetDisplayStyleSection(StructureDisplayStylePlanType.Structure).Visible = False
oStructureStyle.GetDisplayStyleSection(StructureDisplayStylePlanType.StructureHatch).Visible = False
oStructureStyle.GetDisplayStylePlan(StructureDisplayStylePlanType.StructureHatch).Visible = False
oStructureStyle.GetDisplayStyleProfile(StructureDisplayStylePlanType.Structure).Visible = False
oStructureStyle.GetDisplayStyleProfile(StructureDisplayStylePlanType.StructureHatch).Visible = False
trans.Commit()
ed.WriteMessage("Create StructureStyle Successful." + Convert.ToChar(10))
CreateStructureStyle = oStructureStyle
End Function ' CreateStructureStyle