{ "Uuid": "fc35d717-a0b3-48d1-8161-84209cc1f7c4", "IsCustomNode": false, "Description": null, "Name": "GridBubbleOffset-DP", "ElementResolver": { "ResolutionMap": {} }, "Inputs": [ { "Id": "8da88da1be2d4807b9a03a938bcd15db", "Name": "X distance", "Type": "number", "Value": "-10", "NumberType": "Double", "Description": "Creates a number." }, { "Id": "fd46b9ea0a3c4180950b264ea894f089", "Name": "Y distance", "Type": "number", "Value": "-10", "NumberType": "Double", "Description": "Creates a number." } ], "Outputs": [], "Nodes": [ { "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", "NodeType": "PythonScriptNode", "Code": "# Load the Python Standard and DesignScript Libraries\r\nimport sys\r\nimport clr\r\nclr.AddReference('ProtoGeometry')\r\nfrom Autodesk.DesignScript.Geometry import *\r\n\r\n# Import RevitAPI\r\nclr.AddReference('RevitAPI')\r\nfrom Autodesk.Revit.DB import *\r\n\r\n# Import RevitAPIUI\r\nclr.AddReference('RevitAPIUI')\r\n\r\n# Import DocumentManager and TransactionManager\r\nclr.AddReference('RevitServices')\r\nimport RevitServices\r\nfrom RevitServices.Persistence import DocumentManager\r\nfrom RevitServices.Transactions import TransactionManager\r\n\r\n# Import RevitNodes\r\nclr.AddReference('RevitNodes')\r\n\r\n# Assign Labels to Revit Document and Application\r\ndoc = DocumentManager.Instance.CurrentDBDocument\r\napp = DocumentManager.Instance.CurrentUIApplication.Application\r\nuiapp = DocumentManager.Instance.CurrentUIApplication\r\n\r\n# Input\r\ngrid = UnwrapElement(IN[0])\r\ncurView = UnwrapElement(IN[1])\r\noffsetX = IN[2]\r\noffsetY = IN[3]\r\n\r\noutput = []\r\n\r\n\r\ntry:\r\n\terrorReport = None\r\n\tTransactionManager.Instance.EnsureInTransaction(doc)\r\n\t\r\n\tgridLeader0 = grid.GetLeader(DatumEnds.End0,curView)\r\n\tgridLeader1 = grid.GetLeader(DatumEnds.End1,curView)\r\n\t\r\n\t# [0]: Datumend, [1]: leader\r\n\tgridends = [[DatumEnds.End0,gridLeader0],[DatumEnds.End1,gridLeader1]]\r\n\t\r\n\tfor i in gridends:\r\n\t\tif i[1] is None and grid.HasBubbleInView(i[0], curView):\r\n\t\t\t#output.append(grid.HasBubbleInView(i[0], curView))\r\n\t\t\tgrid.AddLeader(i[0],curView)\r\n\t\r\n\t\r\n\tfor i in gridends:\r\n\t\tif i[1] is not None:\r\n\t\t\t\r\n\t\t\toutput.append(['anchor',i[1].Anchor.X,i[1].Anchor.Y,i[1].Anchor.Z])\r\n\t\t\toutput.append(['elbow',i[1].Elbow.X,i[1].Elbow.Y,i[1].Elbow.Z])\r\n\t\t\toutput.append(['end',i[1].End.X,i[1].End.Y,i[1].End.Z])\r\n\t\t\t\r\n\t\t\tleader = i[1]\r\n\t\t\t\r\n\t\t\tdistX = i[1].Anchor.X - i[1].End.X\r\n\t\t\tdistY = i[1].Anchor.Y - i[1].End.Y\r\n\t\t\t\r\n\t\t\toutput.append(['distX',distX])\r\n\t\t\toutput.append(['distY',distY])\r\n\t\t\t\r\n\t\t\tif distX > 0:\r\n\t\t\t\tposX = 1\r\n\t\t\telse:\r\n\t\t\t\tposX = -1\r\n\t\t\t\t\r\n\t\t\tif distY > 0:\r\n\t\t\t\tposY = 1\r\n\t\t\telse: \r\n\t\t\t\tposY = -1\r\n\t\t\t\r\n\t\t\tleader.Elbow = XYZ(i[1].End.X + (offsetX * posX) ,i[1].End.Y + (offsetY * posY) ,i[1].Elbow.Z)\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\toutput.append(['anchor',leader.Anchor.X,leader.Anchor.Y,leader.Anchor.Z])\r\n\t\t\toutput.append(['elbow',leader.Elbow.X,leader.Elbow.Y,leader.Elbow.Z])\r\n\t\t\toutput.append(['end',leader.End.X,leader.End.Y,leader.End.Z])\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tgrid.SetLeader(i[0],curView,leader)\r\n\t\t\r\n\t\t\t\r\n\t#for i in ele:\r\n\t#\ti.HideBubbleInView(DatumEnds.End1,curView)\r\n\t\t\r\n\tTransactionManager.Instance.TransactionTaskDone()\r\nexcept:\r\n\t# if error accurs anywhere in the process catch it\r\n\timport traceback\r\n\terrorReport = traceback.format_exc()\r\n\r\n\r\n\r\n# Define Output Based on If Statement\r\nif errorReport is None:\r\n\t#OUT = [gridend.Elbow, gridend.Anchor, dir(gridend)]\r\n\tOUT = output\r\nelse:\r\n\tOUT = errorReport\r\n\r\n\t\r\n\r\n", "VariableInputPorts": true, "Id": "a8799114d09b4b6d88b96eaac6614412", "Inputs": [ { "Id": "05acc577b04b428f95332758c1028c04", "Name": "IN[0]", "Description": "Input #0", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false }, { "Id": "94ed730d77fc430394cf2722f4c2b423", "Name": "IN[1]", "Description": "Input #1", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false }, { "Id": "12a782080fd24f788f0b974294eae997", "Name": "IN[2]", "Description": "Input #2", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false }, { "Id": "06bd25dc3be94852a12d534865c2bae9", "Name": "IN[3]", "Description": "Input #3", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Outputs": [ { "Id": "2e536a6c8d604a939afa7e202631ae0d", "Name": "OUT", "Description": "Result of the python script", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Runs an embedded IronPython script." }, { "ConcreteType": "Dynamo.Nodes.DSModelElementSelection, DSRevitNodesUI", "NodeType": "ExtensionNode", "InstanceId": [ "0fe1732c-90d6-40b4-b667-9ed43ba12023-0015caf5" ], "Id": "414f7d3045aa4feba97c6371e23fae4c", "Inputs": [], "Outputs": [ { "Id": "c3d54561064e47898f9603b0fc9f6f45", "Name": "Element", "Description": "The selected elements.", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled" }, { "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", "NodeType": "FunctionNode", "FunctionSignature": "Revit.Application.Document.ActiveView", "Id": "b1715cd97b97409b82ead61aa85276e1", "Inputs": [ { "Id": "0d5f0dddb03b4b2b8ec9cafeda4c3bb8", "Name": "document", "Description": "Revit.Application.Document", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Outputs": [ { "Id": "9d152dfd97514346a8cb5965638b75f7", "Name": "View", "Description": "View", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Auto", "Description": "Get the active view for the document\n\nDocument.ActiveView: View" }, { "ConcreteType": "Dynamo.Graph.Nodes.ZeroTouch.DSFunction, DynamoCore", "NodeType": "FunctionNode", "FunctionSignature": "Revit.Application.Document.Current", "Id": "14d0cb161c754f54a2380b70580f8c06", "Inputs": [], "Outputs": [ { "Id": "5ad64623c2284fedb85dcb251539c00d", "Name": "Document", "Description": "Document", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Auto", "Description": "Get the current document\n\nDocument.Current: Document" }, { "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels", "NodeType": "NumberInputNode", "NumberType": "Double", "InputValue": -10.0, "Id": "8da88da1be2d4807b9a03a938bcd15db", "Inputs": [], "Outputs": [ { "Id": "47ff90980fa44e96b3a7ffba04f12062", "Name": "", "Description": "Double", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Creates a number." }, { "ConcreteType": "CoreNodeModels.Input.DoubleInput, CoreNodeModels", "NodeType": "NumberInputNode", "NumberType": "Double", "InputValue": -10.0, "Id": "fd46b9ea0a3c4180950b264ea894f089", "Inputs": [], "Outputs": [ { "Id": "5a88bc5a9607464dbe880721c84857de", "Name": "", "Description": "Double", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Creates a number." } ], "Connectors": [ { "Start": "c3d54561064e47898f9603b0fc9f6f45", "End": "05acc577b04b428f95332758c1028c04", "Id": "7dca9c8896af4fd484a655c1fb46cee5" }, { "Start": "9d152dfd97514346a8cb5965638b75f7", "End": "94ed730d77fc430394cf2722f4c2b423", "Id": "4c45e6aac5764bde83008b2581c805d2" }, { "Start": "5ad64623c2284fedb85dcb251539c00d", "End": "0d5f0dddb03b4b2b8ec9cafeda4c3bb8", "Id": "73a8e51c0b2340e0a202e215f9cfebae" }, { "Start": "47ff90980fa44e96b3a7ffba04f12062", "End": "12a782080fd24f788f0b974294eae997", "Id": "167f81a72f7345b8ad5be9ec17cfba53" }, { "Start": "5a88bc5a9607464dbe880721c84857de", "End": "06bd25dc3be94852a12d534865c2bae9", "Id": "1306945c5d294e24a34f655321c9dbab" } ], "Dependencies": [], "NodeLibraryDependencies": [], "Bindings": [], "View": { "Dynamo": { "ScaleFactor": 1.0, "HasRunWithoutCrash": true, "IsVisibleInDynamoLibrary": true, "Version": "2.6.1.8786", "RunType": "Manual", "RunPeriod": "1000" }, "Camera": { "Name": "Background Preview", "EyeX": -25.1837586830093, "EyeY": 90.422890037793763, "EyeZ": 46.019345005205423, "LookX": 25.1837586830093, "LookY": -90.422890037793763, "LookZ": -46.019345005205423, "UpX": 0.3539379045896523, "UpY": 0.67559020761566135, "UpZ": -0.64676566936450453 }, "NodeViews": [ { "ShowGeometry": true, "Name": "Python Script", "Id": "a8799114d09b4b6d88b96eaac6614412", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "X": 503.0, "Y": 237.69422614314067 }, { "ShowGeometry": true, "Name": "Select Grid", "Id": "414f7d3045aa4feba97c6371e23fae4c", "IsSetAsInput": true, "IsSetAsOutput": false, "Excluded": false, "X": 122.5, "Y": 302.5 }, { "ShowGeometry": true, "Name": "Document.ActiveView", "Id": "b1715cd97b97409b82ead61aa85276e1", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "X": 135.05981249448382, "Y": 732.20753491174651 }, { "ShowGeometry": true, "Name": "Document.Current", "Id": "14d0cb161c754f54a2380b70580f8c06", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "X": -40.85874833022217, "Y": 727.09642380063451 }, { "ShowGeometry": true, "Name": "X distance", "Id": "8da88da1be2d4807b9a03a938bcd15db", "IsSetAsInput": true, "IsSetAsOutput": false, "Excluded": false, "X": -38.966208117462429, "Y": 417.47973687113512 }, { "ShowGeometry": true, "Name": "Y distance", "Id": "fd46b9ea0a3c4180950b264ea894f089", "IsSetAsInput": true, "IsSetAsOutput": false, "Excluded": false, "X": -44.287882806944879, "Y": 530.7553838329768 } ], "Annotations": [], "X": 179.42681591392414, "Y": 290.283464684991, "Zoom": 0.687429564313341 } }