Posts by architect_andy

    Hi Pieter-
    It's probably about the same, using Rhino Inside or Dynamo in terms of what gets put into Revit. Dynamo might even be better at handling the proxy geometry, not sure. In general, I prefer Rhino.Inside for most things; it's just a more stable piece of software and requires a few less components to do the same things, in my opinion. The main reason for choosing Rhino here was that the blocks were in Rhino to start with. I'm not exactly sure how we would have done it with Dynamo, but, like you outlined above, we could write all the block locations to a csv from rhino/gh, then use dynamo to reference that csv- something along those lines. That type of multistep process might be more stable any way. We talked about doing this entire process with a c# script too, which would probably make the whole thing quicker and more reliable, so we may do that at some point too.


    We solved this problem :)

    (at least for moving assets from Rhino to Revit)

    Our source code and all related files can be found here: zgfarchitectsllp/EnscapeAssetTransfer (

    The most difficult part, like mentioned above, was getting the Enscape Asset ID from Rhino. It seems like that GUID is stored somewhere in Rhino that cannot be accessed by users (we tried everything). It would be great if it were just a User Text Parameter in Rhino, but jonahhawk was able to develop a work around. By parsing the JSON files in the asset library, a .csv gets created that has all the asset names and their associated GUIDs. We then use that data to reference the block name from rhino and associated it with an Enscape Asset ID that can be put into Revit. See our documentation on gitHub for the details. We wanted to put this process out there publicly in the hope that others can use it and improve upon it.

    Ultimately, this is a functionality we hope Enscape can develop natively. We often work between different 3D applications during different phases of architecture projects, and recreating assets in another platform is an all too common practice that should be entirely automated.

    We would love to develop a similar process for moving assets from Revit to Rhino, but without being able to access the data in rhino, we believe this will be impossible. Please let us know if there is another way.

    Everything about this process is working.... execpt for one critical step.

    I need to access the Enscape AssetID in Rhino, and I can't seem to find it anywhere. Please help!

    Once you place an enscape asset in rhino, a block instance gets created. Enscape knows to use this block instance to point at some specific asset in the enscape materials library, but I can't figure out how. In Revit, there is a parameter (Enscape AssetID), where you can easily access this information. Typing "what" in Rhino brings up object info with a few different UIDs, but none of them correspond to anything in the asset library. I've tried looking in Log files to see if anything comes up, but I can't find anything. If I can just get to the asset ID through rhino/Gh- or even a simple python script, this entire process will work. Please help!

    Hi Pieter- Yes, models have the same coordinates. As far as RhinoInside and Enscape running at the same time, yes, I agree. Even having them both loaded not necessarily running at the same time can cause issues. Ideally, the script would run, then rhinoInside could be closed, and enscape will work fine.
    In generally the idea is this:

    1) Use the rhino block instances (enscape asset) to get the position and rotation of the asset.
    2)Place any enscape asset in the correct location in the Revit model

    3) Change the enscape asset ID to point to the correct asset.

    This may not acquire the correct proxy mesh, but in theory, it would render correctly in enscape.

    The difficulty here is of course that Enscape assets are turned into Revit families only when they are placed into the model. The don't really exist in a location that we can point to before they are placed in the model. Even with the entire asset library downloaded, we still need some sort of enscape family in the model for this to work.

    The thing that I'm trying to figure out at the moment is how to change the assetID parameter in revit. In other words, how to trick enscape into thinking one asset is another. I can't seem to figure out how to access this parameter, or if it is even possible (let alone recommended).

    Open to any suggestions. In general, it seems like this is something that many users would find beneficial, so maybe it becomes a 'standard' enscape functionality at some point.

    Yes, I want this also! Trying to transfer assets between Rhino and Revit. The team has a well developed model with over 2,000 instances of 190 unique assets in Rhino. Recreating all the exact same assets in a different platform is difficult to automate and nearly impossible to do manually. We are trying to recreate the assets as Revit families using RhinoInside and Grasshopper, but Enscape and RhinoInside used together cause Revit to crash frequently. Open to any suggestions or workarounds for this problem!