Created
March 27, 2023 15:41
-
-
Save pderendinger-everse/668e4fbd49239af5edb005728936e711 to your computer and use it in GitHub Desktop.
ChatGPT-Geometry generator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Uuid": "2493b807-0c2e-48d4-8838-e6c9b55015ed", | |
"IsCustomNode": false, | |
"Description": "", | |
"Name": "ChatGPT-Geometry generator", | |
"ElementResolver": { | |
"ResolutionMap": { | |
"Cuboid": { | |
"Key": "Autodesk.DesignScript.Geometry.Cuboid", | |
"Value": "ProtoGeometry.dll" | |
}, | |
"Vector": { | |
"Key": "Autodesk.DesignScript.Geometry.Vector", | |
"Value": "ProtoGeometry.dll" | |
} | |
} | |
}, | |
"Inputs": [], | |
"Outputs": [], | |
"Nodes": [ | |
{ | |
"ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", | |
"NodeType": "PythonScriptNode", | |
"Code": "import sys\r\nimport clr\r\nimport math\r\nclr.AddReference('ProtoGeometry')\r\nfrom Autodesk.DesignScript.Geometry import *\r\n# Add paths to system libraries\r\nsys.path.append(r'C:\\Python310\\Lib')\r\nimport urllib.request\r\nimport json\r\n\r\n# set the OpenAI API key\r\nOPENAI_API_KEY =\"YOUR-API-KEY\"\r\nprompt = \"you are bot which provides python scripts to create dynamo geometries for Dynamo BIM 2.X\"\r\n\r\nprompt += \"\\n Do not include any Revit references.\"\r\nprompt += \"Add any reference library needed\"\r\nprompt += \"\\n I only need the script body\"\r\nprompt += \"\\n Don’t add any explanation. \"\r\nprompt += \"Use the simplest option available\"\r\nprompt += \"\\n Set the resulting geometry to the variable OUT. \"\r\nprompt += \"\\n For the following task\" \r\nprompt += IN[0] \r\n\r\n# set the API endpoint URL\r\nurl = \"https://api.openai.com/v1/chat/completions\"\r\n\r\n# set the headers for the request\r\nheaders = {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": \"Bearer \" + OPENAI_API_KEY,\r\n}\r\n\r\n# set the payload data for the request\r\ndata = {\r\n \"model\": \"gpt-4\",\r\n \"messages\": [{\"role\": \"user\", \"content\": prompt}],\r\n \"temperature\": 0.1\r\n}\r\n\r\n# encode the payload data as JSON\r\njson_data = json.dumps(data).encode('utf-8')\r\n\r\n# create a request object\r\nrequest = urllib.request.Request(url, json_data, headers)\r\n\r\n# send the request and get the response\r\nresponse = urllib.request.urlopen(request)\r\n\r\n# decode the response data from JSON\r\nresponse_data = json.loads(response.read().decode('utf-8'))\r\n\r\ncode = response_data[\"choices\"][0][\"message\"][\"content\"]\r\n# print the response data\r\nOUT = code\r\n", | |
"Engine": "CPython3", | |
"VariableInputPorts": true, | |
"Id": "ff5d69eaa9d94e6fbab00c9e91dbd65a", | |
"Inputs": [ | |
{ | |
"Id": "0cce67f3829f4706998944a86205e9a9", | |
"Name": "IN[0]", | |
"Description": "Input #0", | |
"UsingDefaultValue": false, | |
"Level": 2, | |
"UseLevels": false, | |
"KeepListStructure": false | |
} | |
], | |
"Outputs": [ | |
{ | |
"Id": "22e4f55c8f1f40b7ad6e6240feac61bf", | |
"Name": "OUT", | |
"Description": "Result of the python script", | |
"UsingDefaultValue": false, | |
"Level": 2, | |
"UseLevels": false, | |
"KeepListStructure": false | |
} | |
], | |
"Replication": "Disabled", | |
"Description": "Runs an embedded Python script." | |
}, | |
{ | |
"ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", | |
"NodeType": "CodeBlockNode", | |
"Code": "\"create a cuboid of 3 by 4 meters and 3 meters height,\ncutting it with a cuboid of 2.9 by 3.9 meters by 4 meters height\";", | |
"Id": "5b05f7e039734540bf3c295b086611a4", | |
"Inputs": [], | |
"Outputs": [ | |
{ | |
"Id": "9ddef231d34447ed98459eebd8e6c65b", | |
"Name": "", | |
"Description": "Value of expression at line 1", | |
"UsingDefaultValue": false, | |
"Level": 2, | |
"UseLevels": false, | |
"KeepListStructure": false | |
} | |
], | |
"Replication": "Disabled", | |
"Description": "Allows for DesignScript code to be authored directly" | |
}, | |
{ | |
"ConcreteType": "PythonNodeModels.PythonStringNode, PythonNodeModels", | |
"Engine": "CPython3", | |
"VariableInputPorts": true, | |
"NodeType": "ExtensionNode", | |
"Id": "9813a279973e4bceb9ca21d7ee1a8587", | |
"Inputs": [ | |
{ | |
"Id": "b49eed307671483fbfed1ee2624daea4", | |
"Name": "script", | |
"Description": "Python script to run.", | |
"UsingDefaultValue": false, | |
"Level": 2, | |
"UseLevels": false, | |
"KeepListStructure": false | |
}, | |
{ | |
"Id": "79d8ef9fdc5f4ef5b2d7f8a12947533a", | |
"Name": "IN[0]", | |
"Description": "Input #0", | |
"UsingDefaultValue": false, | |
"Level": 2, | |
"UseLevels": false, | |
"KeepListStructure": false | |
} | |
], | |
"Outputs": [ | |
{ | |
"Id": "e78594fe98da4baebb3abdacc2e11014", | |
"Name": "OUT", | |
"Description": "Result of the python script", | |
"UsingDefaultValue": false, | |
"Level": 2, | |
"UseLevels": false, | |
"KeepListStructure": false | |
} | |
], | |
"Replication": "Disabled", | |
"Description": "Runs a Python script from a string." | |
} | |
], | |
"Connectors": [ | |
{ | |
"Start": "22e4f55c8f1f40b7ad6e6240feac61bf", | |
"End": "b49eed307671483fbfed1ee2624daea4", | |
"Id": "e057cd81eb9840a3acdfae906f3a748a", | |
"IsHidden": "False" | |
}, | |
{ | |
"Start": "9ddef231d34447ed98459eebd8e6c65b", | |
"End": "0cce67f3829f4706998944a86205e9a9", | |
"Id": "076679b4ea93421f94cf1f99aab5e86a", | |
"IsHidden": "False" | |
} | |
], | |
"Dependencies": [], | |
"NodeLibraryDependencies": [], | |
"Thumbnail": "", | |
"GraphDocumentationURL": null, | |
"ExtensionWorkspaceData": [ | |
{ | |
"ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", | |
"Name": "Properties", | |
"Version": "2.13", | |
"Data": {} | |
}, | |
{ | |
"ExtensionGuid": "DFBD9CC0-DB40-457A-939E-8C8555555A9D", | |
"Name": "Generative Design", | |
"Version": "2.0", | |
"Data": {} | |
} | |
], | |
"Author": "", | |
"Linting": { | |
"activeLinter": "None", | |
"activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", | |
"warningCount": 0, | |
"errorCount": 0 | |
}, | |
"Bindings": [], | |
"View": { | |
"Dynamo": { | |
"ScaleFactor": 1.0, | |
"HasRunWithoutCrash": true, | |
"IsVisibleInDynamoLibrary": true, | |
"Version": "2.13.1.3887", | |
"RunType": "Manual", | |
"RunPeriod": "1000" | |
}, | |
"Camera": { | |
"Name": "Background Preview", | |
"EyeX": -5.198580265045166, | |
"EyeY": 5.0964016914367676, | |
"EyeZ": -3.9728837013244629, | |
"LookX": 7.8705239295959473, | |
"LookY": -7.3257088661193848, | |
"LookZ": 4.8589005470275879, | |
"UpX": 0.37301415205001831, | |
"UpY": 0.89879387617111206, | |
"UpZ": 0.2302825003862381 | |
}, | |
"ConnectorPins": [], | |
"NodeViews": [ | |
{ | |
"Name": "Python Script", | |
"ShowGeometry": true, | |
"Id": "ff5d69eaa9d94e6fbab00c9e91dbd65a", | |
"IsSetAsInput": false, | |
"IsSetAsOutput": false, | |
"Excluded": false, | |
"X": 570.590326611191, | |
"Y": 824.602168595983 | |
}, | |
{ | |
"Name": "Code Block", | |
"ShowGeometry": true, | |
"Id": "5b05f7e039734540bf3c295b086611a4", | |
"IsSetAsInput": false, | |
"IsSetAsOutput": false, | |
"Excluded": false, | |
"X": -486.05698871687832, | |
"Y": 1058.5515261182713 | |
}, | |
{ | |
"Name": "Python Script From String", | |
"ShowGeometry": true, | |
"Id": "9813a279973e4bceb9ca21d7ee1a8587", | |
"IsSetAsInput": false, | |
"IsSetAsOutput": false, | |
"Excluded": false, | |
"X": 909.51838367518587, | |
"Y": 787.03960609573039 | |
} | |
], | |
"Annotations": [], | |
"X": 716.40994618393574, | |
"Y": -643.47636845638954, | |
"Zoom": 1.130842140625 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment