]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ontology/graph/DistrictNetworkDiagramSettings.pgraph
Add support for saving visualisation templates
[simantics/district.git] / org.simantics.district.network.ontology / graph / DistrictNetworkDiagramSettings.pgraph
index 10744ea144927aa7120f9d87fd947ba9fa5231c2..2e259ef7bee17e801e45266cd05cb0fc46f3a0f9 100644 (file)
@@ -1,4 +1,5 @@
 L0 = <http://www.simantics.org/Layer0-1.1>
+L0X = <http://www.simantics.org/Layer0X-1.1>
 DIA = <http://www.simantics.org/Diagram-2.2>
 STR = <http://www.simantics.org/Structural-1.2>
 MOD = <http://www.simantics.org/Modeling-1.2>
@@ -8,6 +9,7 @@ SEL = <http://www.simantics.org/SelectionView-1.2>
 SEL_UI = <http://www.simantics.org/SelectionViewUI-1.1>
 G2D = <http://www.simantics.org/G2D-1.1>
 DN = <http://www.simantics.org/DistrictNetwork-1.0>
+DATATYPES = <http://www.simantics.org/Datatypes-1.1>
 
 // ----------------------------------------------------------------------------
 
@@ -17,6 +19,12 @@ DN.EdgeThicknessPropertyParameterType <T SEL.GenericParameterType
             SEL.HasEnumerationValues DN.Functions.edgeThicknessPropertyEnumerationValues : L0.Function
             SEL.HasCustomModifier DN.Functions.edgeThicknessPropertyModifier : L0.Function
 
+DN.ArrowLengthPropertyParameterType <T SEL.GenericParameterType
+    @L0.assert SEL.HasDisplayValue
+        _ : SEL.DisplayValue
+            SEL.HasEnumerationValues DN.Functions.arrowLengthPropertyEnumerationValues : L0.Function
+            SEL.HasCustomModifier DN.Functions.arrowLengthPropertyModifier : L0.Function
+
 DN.VertexScalePropertyParameterType <T SEL.GenericParameterType
     @L0.assert SEL.HasDisplayValue
         _ : SEL.DisplayValue
@@ -34,6 +42,17 @@ DN.Edge.ThicknessProperty <T L0.Value
     @L0.assert DN.Edge.ThicknessProperty.gain 1.0
     @L0.assert DN.Edge.ThicknessProperty.bias 0.0
 
+DN.Edge.ArrowLengthProperty <T L0.Value
+    @L0.assert L0.ConvertsToValueWith DN.Functions.convertToValue
+    >-- DN.Edge.ArrowLengthProperty.value ==> "Resource -> <ReadGraph> Maybe Double" <R L0.HasProperty : SEL.GenericParameterType
+        L0.readOnly true
+    >-- DN.Edge.ArrowLengthProperty.gain --> L0.Double <R L0.HasProperty : SEL.GenericParameterType
+        L0.readOnly true
+    >-- DN.Edge.ArrowLengthProperty.bias --> L0.Double <R L0.HasProperty : SEL.GenericParameterType
+        L0.readOnly true
+    @L0.assert DN.Edge.ArrowLengthProperty.gain 1.0
+    @L0.assert DN.Edge.ArrowLengthProperty.bias 0.0
+
 DN.Vertex.ScaleProperty <T L0.Value
     @L0.assert L0.ConvertsToValueWith DN.Functions.convertToValue
     >-- DN.Vertex.ScaleProperty.value ==> "Resource -> <ReadGraph> Maybe Double" <R L0.HasProperty : SEL.GenericParameterType
@@ -46,33 +65,86 @@ DN.Vertex.ScaleProperty <T L0.Value
     @L0.assert DN.Vertex.ScaleProperty.bias 0.0
 
 DN.Diagram
+    >-- DN.Diagram.elementColoringGradientHue ==> "Float" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Element Color Hue"
+        L0.HasDescription "HSV/HSB color space hue value used for element coloring in degrees (0-360)"
+        L0X.HasUnit "deg"
+        L0X.RequiresDataType $(Float(unit="deg",range=[0..360]))
+        SEL.HasDisplayValue _ : SEL.DisplayValue
+            L0.Literal.HasInputValidator DN.Functions.hueValidator : L0.Function
+    >-- DN.Diagram.elementColoringGradientSaturation ==> "Float" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Element Color Saturation"
+        L0.HasDescription "HSV/HSB color space saturation value used for element coloring in % (0-100)"
+        L0X.HasUnit "%"
+        L0X.RequiresDataType $(Float(unit="%",range=[0..100]))
+        SEL.HasDisplayValue _ : SEL.DisplayValue
+            L0.Literal.HasInputValidator DN.Functions.saturationValidator : L0.Function
+    >-- DN.Diagram.elementColoringFunction --> L0.String ==> "Resource -> <ReadGraph> Double" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Element Color Brightness Function"
+        L0.HasDescription "Defines HSV/HSB color space brightness function whose value is cut off to fit [0,1]. Together with hue and saturation this defines the element color."
+        SEL.HasDisplayValue _ : SEL.DisplayValue
+            L0.Literal.HasInputValidator DN.Functions.brightnessValidator : L0.Function
     >-- DN.Diagram.edgeThicknessGain ==> "Double" <R L0.HasProperty : SEL.GenericParameterType
         L0.HasLabel "Edge Thickness Gain"
     >-- DN.Diagram.edgeThicknessBias ==> "Double" <R L0.HasProperty : SEL.GenericParameterType
         L0.HasLabel "Edge Thickness Bias"
     >-- DN.Diagram.edgeThicknessProperty --> DN.Edge.ThicknessProperty <R L0.HasProperty : DN.EdgeThicknessPropertyParameterType
         L0.HasLabel "Edge Thickness Property"
+    >-- DN.Diagram.arrowLengthGain ==> "Double" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Arrow Length Gain"
+    >-- DN.Diagram.arrowLengthBias ==> "Double" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Arrow Length Bias"
+    >-- DN.Diagram.arrowLengthProperty --> DN.Edge.ArrowLengthProperty <R L0.HasProperty : DN.ArrowLengthPropertyParameterType
+        L0.HasLabel "Arrow Length Property"
     >-- DN.Diagram.nodeScaleGain ==> "Double" <R L0.HasProperty : SEL.GenericParameterType
         L0.HasLabel "Node Scale Gain"
     >-- DN.Diagram.nodeScaleBias ==> "Double" <R L0.HasProperty : SEL.GenericParameterType
         L0.HasLabel "Node Scale Bias"
     >-- DN.Diagram.nodeScaleProperty --> DN.Vertex.ScaleProperty <R L0.HasProperty : DN.VertexScalePropertyParameterType
         L0.HasLabel "Node Scale Property"
+    >-- DN.Diagram.backgroundColor --> DATATYPES.RGB.Integer <R L0.HasProperty : SEL.ColorParameterType
+        L0.HasLabel "Diagram Background Color"
+    >-- DN.Diagram.drawMapEnabled ==> "Boolean" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Draw Map"
+    >-- DN.Diagram.hasVisualisation --> DN.Diagram.Visualisations <R L0.HasProperty
+        L0.HasLabel "Visualisation"
+    >-- DN.Diagram.hasActiveVisualisation --> DN.Diagram.Visualisations <R L0.HasProperty
+    >-- DN.Diagram.profileUpdateInterval ==> "Long" <R L0.HasProperty : SEL.GenericParameterType
+        L0.HasLabel "Profile update interval"
+    @L0.assert DN.Diagram.elementColoringGradientHue
+        0.0 : L0.Float
+            L0.HasDataType $(Float(unit="deg",range=[0..360]))
+    @L0.assert DN.Diagram.elementColoringGradientSaturation
+        100.0 : L0.Float
+            L0.HasDataType $(Float(unit="%",range=[0..100]))
+    @MOD.sclAssertion DN.Diagram.elementColoringFunction "\r -> 1.0" "Resource -> <ReadGraph> Double"
     @L0.assert DN.Diagram.edgeThicknessGain 1.0
     @L0.assert DN.Diagram.edgeThicknessBias 0.0
     @L0.assert DN.Diagram.edgeThicknessProperty DN.Edge.ThicknessProperty.Diameter
+    @L0.assert DN.Diagram.arrowLengthGain 1.0
+    @L0.assert DN.Diagram.arrowLengthBias 0.0
+    @L0.assert DN.Diagram.arrowLengthProperty DN.Edge.ArrowLengthProperty.FlowRate
     @L0.assert DN.Diagram.nodeScaleGain 1.0
     @L0.assert DN.Diagram.nodeScaleBias 0.0
     @L0.assert DN.Diagram.nodeScaleProperty DN.Vertex.ScaleProperty.NominalSupplyPressure
+    @L0.assert DN.Diagram.drawMapEnabled true
+    @L0.assert DN.Diagram.profileUpdateInterval
+        2000 : L0.Long
+    @L0.assert DN.Diagram.DefaultPipeTechTypeId 0
 
 // ----------------------------------------------------------------------------
 // Built-in enumerated ScaleProperty & ThicknessProperty instances
 
+DN.Functions.constantOne : L0.Function
+    L0.HasValueType "Resource -> <ReadGraph> Maybe Double"
+
+DN.Functions.hasNominalMassFlowValue : L0.Function
+    L0.HasValueType "Resource -> <ReadGraph> Maybe Double"
+
 DN.Edge.ThicknessProperty.OnlyGainAndBias: DN.Edge.ThicknessProperty
     L0.HasLabel "Only Gain and Bias"
     DN.Edge.ThicknessProperty.value
-        DN.Functions.constantOne : L0.Function
-            L0.HasValueType "Resource -> <ReadGraph> Maybe Double"
+        DN.Functions.constantOne
 
 DN.Edge.ThicknessProperty.Diameter : DN.Edge.ThicknessProperty
     L0.HasLabel "Diameter"
@@ -81,12 +153,22 @@ DN.Edge.ThicknessProperty.Diameter : DN.Edge.ThicknessProperty
             L0.HasValueType "Resource -> <ReadGraph> Maybe Double"
     DN.Edge.ThicknessProperty.gain 0.001
 
+DN.Edge.ThicknessProperty.FlowRate : DN.Edge.ThicknessProperty
+    L0.HasLabel "Nominal Mass Flow"
+    DN.Edge.ThicknessProperty.value
+        DN.Functions.hasNominalMassFlowValue
+    DN.Edge.ThicknessProperty.gain 0.1
+
+DN.Edge.ArrowLengthProperty.FlowRate : DN.Edge.ArrowLengthProperty
+    L0.HasLabel "Nominal Mass Flow"
+    DN.Edge.ArrowLengthProperty.value
+        DN.Functions.hasNominalMassFlowValue
+    DN.Edge.ArrowLengthProperty.gain 1.0
 
 DN.Vertex.ScaleProperty.OnlyGainAndBias: DN.Vertex.ScaleProperty
     L0.HasLabel "Only Gain and Bias"
     DN.Vertex.ScaleProperty.value
-        DN.Functions.constantOne : L0.Function
-            L0.HasValueType "Resource -> <ReadGraph> Maybe Double"
+        DN.Functions.constantOne
 
 DN.Vertex.ScaleProperty.NominalSupplyPressure : DN.Vertex.ScaleProperty
     L0.HasLabel "Nominal Supply Pressure"