GH1 → GH2 interop available in latest alpha

Yes, but it only works when Rhino 8 is reinstalled with the latest version released on 05.04 :slight_smile:

:wink: Besides, may I recommend DocumentObject.Nomen to have public setters?

My plugin relys on them to perform localization, say the example code:

using Grasshopper.Components;
using Grasshopper.UI;

namespace PancakeForGh2
{
    public abstract class PancakeComponent : Component
    {
        protected PancakeComponent() : base(Nomen.Empty)
        {
            var name = LookUpLocalizableName(GetType().Name);
            var nomen = new Nomen(name, ..., ..., ...);

            Nomen = nomen;
        }
    }

    public class SomeComponent : PancakeComponent
    {
        ...
    }
}

There’s DocumentObject.ModifyNameAndInfo(), but that doesn’t let you change other aspects of the Nomen.

Yes, although I’m working on section, slot and rank. They are immutable. (Component information is stored in XML) I tried using Reflection to set the property and nothing broke down.

By the way, will there be centralized localization support?

Not in gh2. We were working on this but it was taking too much time and we decided to abandon it until at least gh3.

1 Like

Besides, can AbstractParameter/IParameter.Access also have a public setter so that parameters can be created without dealing with each type’s constructor? Say the example code to create localized parameter, possibly from a XML manifest.

I understand Activator.CreateInstance can be used to call the non-default ctor but it isn’t a definitive contract (the Parameter can have exotic constructor) , compared to a writable Access.

        private static T CreateLocalizedParameter<T>(
            string identifier, 
            Access access,
            Requirement requirement
            ) 
            where T : AbstractParameter, new()
        {
            if (!ComponentLibrary.LookupLocalizedParamInfo(identifier,
                out string name, out string nickname, out string desc))
            {
                // The identifier doesn't exist. Shouldn't happen.
                name = nickname = desc = identifier;
                IssueTracker.ReportInPlace($"Unknown identifier during param creation: {identifier}");
            }

            var param = new T
            {
                Requirement = requirement,
                UserName = nickname
            };

            param.ModifyNameAndInfo(name, desc);

            // Access doesn't have a public setter (designed to be set by non-default ctor)
            // Find out a better way to change Access.
            param.SetAccessByReflection(access);

            return param;
        }
1 Like

Hi
seems this bug in preview in this process !

1 Like

Hi -

Thanks for reporting!
I can’t seem to reproduce that here but I’m running a more recent internal version.
-wim

Hi,Dear David,I tested the latest version. But I can’t drag G1 commponents like the video show. see pic below


GH1-GH2 interoprev1
What I missed, Thank you in advance! @DavidRutten

Hi -

You missed this part:

-wim

Thank you for your reply wim. But, See gif last part.
image
Curve.Analysis.Discontinuity Also can’t be draged. I have tested many commponts, No objects can be draged for now. Just can be copied.

Hi -

I’m afraid that seems to work fine here:
2023-02-02 G1-G2 DnD

Please run the Rhino SystemInfo command and copy-paste the result here.
-wim

Rhino 8 SR0 2023-1-24
Windows 10 (10.0.17763 SR0.0) or greater (Physical RAM: 64Gb)

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 2080 SUPER (NVidia) Memory: 8GB, Driver date: 5-4-2022 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 512.77
> Accelerated graphics device with 4 adapter port(s)
- Secondary monitor attached to adapter port #0
- Secondary monitor attached to adapter port #1
- Windows Main Display attached to adapter port #2

Secondary graphics devices.
Intel(R) UHD Graphics 630 (Intel) Memory: 1GB, Driver date: 10-28-2020 (M-D-Y).
> Integrated graphics device with 0 adapter port(s)
- There are no monitors attached to this device!

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 5-4-2022
Driver Version: 30.0.15.1277
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Don’t use cracked versions of Rhino. They are unsupported, and very likely broken like you noticed.

Best way to fix: buy a valid Rhino 7 license, install using installer downloaded the official site, then activate your license, then install Rhino 8 WIP also downloaded from its official location.