/// <summary>
        /// Extracts 3-dimensional variable value. <seealso cref="HasVariable3d"/> <seealso cref="GetVariable1d"/>
        /// </summary>
        /// <param name="variable3d">variable to extract</param>
        /// <returns>array with 3 variable values in order X Y Z</returns>
        public double[] GetVariable3d(Variable3d variable3d)
        {
            IntPtr values = NativeNode.Node_GetVariable3d(_nativeInstance, variable3d.NativeVariable);

            double[] unmarshalledResults = Utils.Utils.UnmarshalNativeDoubles(values, 3);
            NativeUtilities.Utils_FreeDoubleArray(values);
            return(unmarshalledResults);
        }
 /// <summary>
 /// Checks whether condition has initialized 3-dimensional variable. <seealso cref="HasVariable1d"/>
 /// </summary>
 /// <param name="variable3d">variable to check</param>
 /// <returns>true, if variable is initialized</returns>
 public bool HasVariable3d(Variable3d variable3d)
 {
     return(NativeCondition.Condition_HasVariable3d(_nativeInstance, variable3d.NativeVariable));
 }
 /// <summary>
 /// Checks whether node has initialized 3-dimensional variable. <seealso cref="HasVariable1d"/>
 /// </summary>
 /// <param name="variable3d">variable to check</param>
 /// <returns>true, if variable is initialized</returns>
 public bool HasVariable3d(Variable3d variable3d)
 {
     return(NativeNode.Node_HasVariable3d(_nativeInstance, variable3d.NativeVariable));
 }
 /// <summary>
 /// Checks whether element has initialized 3-dimensional variable. <seealso cref="HasVariable1d"/>
 /// </summary>
 /// <param name="variable3d">variable to check</param>
 /// <returns>true, if variable is initialized</returns>
 public bool HasVariable3d(Variable3d variable3d)
 {
     return(NativeElement.Element_HasVariable3d(_nativeInstance, variable3d.NativeVariable));
 }