Version: HPS 2020
Language: C#
Description:
This function will apply conditional styling to a SegmentKey
. See our Programming Guide about Using conditional styles for more information.
void SetConditionalStyle(Canvas _canvas)
{
HPS.SegmentKey modelKey = GetCanvas().GetFrontView().GetAttachedModel().GetSegmentKey();
HPS.PortfolioKey myPortfolio = GetCanvas().GetFrontView().GetAttachedModel().GetPortfolioKey();
// Create a line style with condition "c1"
HPS.LinePatternKit myLinePatternKit = HPS.LinePatternKit.GetDefault(HPS.LinePattern.Default.Dashed);
myPortfolio.DefineLinePattern("pattern1", myLinePatternKit);
SegmentKey line_style_key1 = Database.CreateRootSegment();
myPortfolio.DefineNamedStyle("linestyle1", line_style_key1);
line_style_key1.GetLineAttributeControl().SetPattern("pattern1");
HPS.ConditionalExpression condition1 = new HPS.ConditionalExpression("c1");
// Create another line style with condition "c2"
HPS.LinePatternKit myLinePatternKit2 = HPS.LinePatternKit.GetDefault(HPS.LinePattern.Default.LongDash);
myPortfolio.DefineLinePattern("pattern2", myLinePatternKit2);
SegmentKey line_style_key2 = Database.CreateRootSegment();
myPortfolio.DefineNamedStyle("linestyle2", line_style_key2);
line_style_key2.GetLineAttributeControl().SetPattern("pattern2");
HPS.ConditionalExpression condition2 = new HPS.ConditionalExpression("c2");
// push both style to model key
modelKey.GetStyleControl().PushNamed("linestyle1", condition1);
modelKey.GetStyleControl().PushNamed("linestyle2", condition2);
modelKey.GetVisibilityControl().SetLines(true);
modelKey.Subsegment("line").InsertLine(new Point(-1, 0, 0), new Point(1, 0, 0));
// set your condition
modelKey.SetCondition("c1");
}