Hi guys,
Sorry for the dumb question. I’m trying to use Speckle in a C# script with Rhino Inside Revit to familiarise with the Speckle components.
I’ve loaded SpeckleCoreGeometryClasses, SpeckleCoreGeometryRevit, SpeckleElements and SpeckleElementsRevit.
When I try to convert a Revit point to a Speckle point I get this error:
- Method not found: ‘SpeckleCoreGeometryClasses.SpecklePoint SpeckleCoreGeometryRevit.Conversions.ToSpeckle(Autodesk.Revit.DB.XYZ)’. (line: 89)
I think the method exists so I don’t understand why it cannot be found.
If I copy the ToSpeckle method in the Custom additional code then it works.
Thank you
Giovanni
using System;
using System.Collections;
using System.Collections.Generic;
using Rhino;
using Rhino.Geometry;
using Grasshopper;
using Grasshopper.Kernel;
using Grasshopper.Kernel.Data;
using Grasshopper.Kernel.Types;
using System.IO;
using System.Linq;
using System.Data;
using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
using System.Runtime.InteropServices;
using Rhino.DocObjects;
using Rhino.Collections;
using GH_IO;
using GH_IO.Serialization;
using SpeckleCoreGeometryClasses;
using SpeckleCoreGeometryRevit;
using SpeckleCore;
using SpeckleElements;
using SpeckleElementsRevit;
using Autodesk.Revit.DB;
/// <summary>
/// This class will be instantiated on demand by the Script component.
/// </summary>
public class Script_Instance : GH_ScriptInstance
{
#region Utility functions
/// <summary>Print a String to the [Out] Parameter of the Script component.</summary>
/// <param name="text">String to print.</param>
private void Print(string text) { /* Implementation hidden. */ }
/// <summary>Print a formatted String to the [Out] Parameter of the Script component.</summary>
/// <param name="format">String format.</param>
/// <param name="args">Formatting parameters.</param>
private void Print(string format, params object[] args) { /* Implementation hidden. */ }
/// <summary>Print useful information about an object instance to the [Out] Parameter of the Script component. </summary>
/// <param name="obj">Object instance to parse.</param>
private void Reflect(object obj) { /* Implementation hidden. */ }
/// <summary>Print the signatures of all the overloads of a specific method to the [Out] Parameter of the Script component. </summary>
/// <param name="obj">Object instance to parse.</param>
private void Reflect(object obj, string method_name) { /* Implementation hidden. */ }
#endregion
#region Members
/// <summary>Gets the current Rhino document.</summary>
private readonly RhinoDoc RhinoDocument;
/// <summary>Gets the Grasshopper document that owns this script.</summary>
private readonly GH_Document GrasshopperDocument;
/// <summary>Gets the Grasshopper script component that owns this script.</summary>
private readonly IGH_Component Component;
/// <summary>
/// Gets the current iteration count. The first call to RunScript() is associated with Iteration==0.
/// Any subsequent call within the same solution will increment the Iteration count.
/// </summary>
private readonly int Iteration;
#endregion
/// <summary>
/// This procedure contains the user code. Input parameters are provided as regular arguments,
/// Output parameters as ref arguments. You don't have to assign output parameters,
/// they will have a default value.
/// </summary>
private void RunScript(object x, object y, ref object A)
{
//var spkShaft = new SpeckleElements.Shaft();
XYZ revitPt = new XYZ(50, 32, 45);
SpecklePoint spePt = SpeckleCoreGeometryRevit.Conversions.ToSpeckle(revitPt);
SpecklePoint spePta = ToSpeckle(revitPt);
A = spePt;
}
// <Custom additional code>
public static SpecklePoint ToSpeckle(Autodesk.Revit.DB.XYZ pt)
{
double Scale = 1;
return new SpecklePoint(pt.X / Scale, pt.Y / Scale, pt.Z / Scale, null, null);
}
// </Custom additional code>
}