├── .gitattributes ├── Crumple ├── bin │ └── Package.customization.dll ├── dyf │ ├── AboutAussieBimGuru.dyf │ ├── AboutBimGuruEducation.dyf │ ├── AboutCrumple.dyf │ ├── ApplicationFilterBackups.dyf │ ├── AreasCreate.dyf │ ├── AreasCreateByRooms.dyf │ ├── AreasCreateSeparators.dyf │ ├── AuditElevationMarkers.dyf │ ├── AuditImportedPatterns.dyf │ ├── AuditScheduleTypes.dyf │ ├── AuditViewFilters.dyf │ ├── AuditViewTemplates.dyf │ ├── AuditViews.dyf │ ├── BoundingBoxProperties.dyf │ ├── BoundingBoxUnion.dyf │ ├── BoundingFrame.dyf │ ├── CeilingsCreate.dyf │ ├── CollectBaseExportOptions.dyf │ ├── CollectBipgs.dyf │ ├── CollectCadImports.dyf │ ├── CollectCadLinks.dyf │ ├── CollectDesignOptions.dyf │ ├── CollectDesignOptionsBySet.dyf │ ├── CollectDimensionTypes.dyf │ ├── CollectElementTypes.dyf │ ├── CollectFamilies.dyf │ ├── CollectFillPatterns.dyf │ ├── CollectGroupTypeIds.dyf │ ├── CollectImages.dyf │ ├── CollectKeynotes.dyf │ ├── CollectLegendTypes.dyf │ ├── CollectLinePatterns.dyf │ ├── CollectLineStyles.dyf │ ├── CollectLines.dyf │ ├── CollectMaterials.dyf │ ├── CollectPhases.dyf │ ├── CollectPlaceholderSheets.dyf │ ├── CollectPrintSettings.dyf │ ├── CollectRegions.dyf │ ├── CollectRevisions.dyf │ ├── CollectRevitLinks.dyf │ ├── CollectRooms.dyf │ ├── CollectScheduleInstances.dyf │ ├── CollectScheduleTypes.dyf │ ├── CollectSchedulesByType.dyf │ ├── CollectSheets.dyf │ ├── CollectSpaceSchedules.dyf │ ├── CollectSpaceTypes.dyf │ ├── CollectSpecTypeIds.dyf │ ├── CollectViewFamilyTypes.dyf │ ├── CollectViewSheetSets.dyf │ ├── CollectViewTemplates.dyf │ ├── CollectViewportTypes.dyf │ ├── CollectViewports.dyf │ ├── CollectViews.dyf │ ├── CollectWarnings.dyf │ ├── CollectWorksets.dyf │ ├── ColourDesaturate.dyf │ ├── ColourOverrideAlpha.dyf │ ├── CoordinatesGetLinkTransform.dyf │ ├── CoordinatesOrigin.dyf │ ├── CoordinatesPbp.dyf │ ├── CoordinatesSp.dyf │ ├── CoordinatesTranslatePoints.dyf │ ├── CsvExport.dyf │ ├── CsvImport.dyf │ ├── CurveFilterByHeight.dyf │ ├── CurveFilterByZ.dyf │ ├── DateTimeAnalysisPeriod.dyf │ ├── DateTimeFormatted.dyf │ ├── DateTimeSunDirection.dyf │ ├── DesignOptionsOptionSet.dyf │ ├── DoorsToFrom.dyf │ ├── DynamoCurrentScript.dyf │ ├── DynamoUserPaths.dyf │ ├── ElementTypesByName.dyf │ ├── ElementsById.dyf │ ├── ElementsByLinkAndCategory.dyf │ ├── ElementsByUniqueId.dyf │ ├── ElementsCentroid.dyf │ ├── ElementsCluster.dyf │ ├── ElementsDelete.dyf │ ├── ElementsEditable.dyf │ ├── ElementsGetLevelBelow.dyf │ ├── ElementsGroup.dyf │ ├── ElementsHandFlipped.dyf │ ├── ElementsIsolate.dyf │ ├── ElementsOwners.dyf │ ├── ElementsPainted.dyf │ ├── ElementsPopulate.dyf │ ├── ElementsQuarantine.dyf │ ├── ElementsRename.dyf │ ├── ElementsScopeBoxed.dyf │ ├── ElementsSelect.dyf │ ├── ElementsSetWorkset.dyf │ ├── ElementsStatus.dyf │ ├── ElementsUnionBox.dyf │ ├── ElementsView.dyf │ ├── ElementsWorksets.dyf │ ├── ExcelExportAsFile.dyf │ ├── ExcelExportToFile.dyf │ ├── ExcelImport+.dyf │ ├── ExcelImport.dyf │ ├── ExcelPandasRead.dyf │ ├── ExcelPandasSheetNames.dyf │ ├── ExcelPandasWrite.dyf │ ├── ExcelWorksheets.dyf │ ├── FamilyCategoryName.dyf │ ├── FamilyDocAddSharedParameters.dyf │ ├── FamilyDocClose.dyf │ ├── FamilyDocCloseAndSave.dyf │ ├── FamilyDocCloseWithoutSave.dyf │ ├── FamilyDocGetParameterValues.dyf │ ├── FamilyDocGetParameters.dyf │ ├── FamilyDocGetTypes.dyf │ ├── FamilyDocLoadFromDocument.dyf │ ├── FamilyDocLoadFromPath.dyf │ ├── FamilyDocOpen.dyf │ ├── FamilyDocRemoveParameters.dyf │ ├── FamilyDocReplaceWithSharedParameters.dyf │ ├── FamilyDocReportToValues.dyf │ ├── FamilyDocSetFormulae.dyf │ ├── FamilyDocSetParameterValues.dyf │ ├── FamilyDocTitle.dyf │ ├── FamilyDocValuesReport.dyf │ ├── FamilyEditDocument.dyf │ ├── FamilyFirstInstance.dyf │ ├── FamilyInstanceRotation.dyf │ ├── FamilyInstancesByViewAndPoint.dyf │ ├── FamilyIsInPlace.dyf │ ├── FamilyParamFormulae.dyf │ ├── FamilyParamIsInstance.dyf │ ├── FamilyParamIsShared.dyf │ ├── FamilyParamName.dyf │ ├── FamilyParamParameterGroup.dyf │ ├── FamilyParamStorageType.dyf │ ├── FamilySaveAs.dyf │ ├── FamilyTypeName.dyf │ ├── FloorsCreate.dyf │ ├── FlowFlipper.dyf │ ├── FlowGate.dyf │ ├── FlowIfThenElse.dyf │ ├── FlowIfZebra.dyf │ ├── FlowRelay.dyf │ ├── FlowWaitFor.dyf │ ├── GroupElements.dyf │ ├── GroupHasExclusions.dyf │ ├── LevelsCreate.dyf │ ├── LevelsGetByName.dyf │ ├── ListCombinate.dyf │ ├── ListCull.dyf │ ├── ListForce.dyf │ ├── ListGraftAsLists.dyf │ ├── ListKickFlip.dyf │ ├── ListObjectify.dyf │ ├── ListPositize.dyf │ ├── ListRecursiveSquared.dyf │ ├── ListReplaceNulls.dyf │ ├── ListSplitAtIndex.dyf │ ├── ListSplitAtValue.dyf │ ├── LogWrite.dyf │ ├── MathBounds.dyf │ ├── MathClosestNumber.dyf │ ├── MathCumulativeSum.dyf │ ├── MathDenominate.dyf │ ├── MathFibonnaci.dyf │ ├── MathIntegerToOrdinal.dyf │ ├── MathOrdinals.dyf │ ├── MathRandomNumbers.dyf │ ├── ModifierFilterSolids.dyf │ ├── ParametersBipgByName.dyf │ ├── ParametersGroupTypeIdByName.dyf │ ├── ParametersProjectInformation.dyf │ ├── ParametersSpecTypeIdByName.dyf │ ├── PolyCurveGreatestArea.dyf │ ├── PolycurveSwissify.dyf │ ├── RegionsEdgeStyles.dyf │ ├── RevitCurrentPath.dyf │ ├── RevitCurrentSize.dyf │ ├── RevitCurrentView.dyf │ ├── RevitCurrentViews.dyf │ ├── RevitExportDwgOptions.dyf │ ├── RevitExportPdfOptions.dyf │ ├── RevitExportToDwg.dyf │ ├── RevitExportToPdf.dyf │ ├── RevitGetDocument.dyf │ ├── RevitGetDocuments.dyf │ ├── RevitGetFileVersions.dyf │ ├── RevitGetUnitTypes.dyf │ ├── RevitImportCad.dyf │ ├── RevitInternalToProject.dyf │ ├── RevitIsWorkshared.dyf │ ├── RevitPrintToPDF.dyf │ ├── RevitProjectToInternal.dyf │ ├── RevitSelection.dyf │ ├── RevitStartView.dyf │ ├── RevitVersion.dyf │ ├── RoomsBoundaries.dyf │ ├── RoomsNameNumber.dyf │ ├── SchedulesDataAsText.dyf │ ├── SchedulesDataAsValues.dyf │ ├── SchedulesHeaders.dyf │ ├── SchedulesIsKeySchedule.dyf │ ├── SchedulesIsRevisionSchedule.dyf │ ├── SchedulesKeys.dyf │ ├── SchedulesRenameHeaders.dyf │ ├── SchedulesResetHeaders.dyf │ ├── SchedulesType.dyf │ ├── ScopeBoxesUsed.dyf │ ├── ScopeBoxesViews.dyf │ ├── SelectionByCategories.dyf │ ├── SharedParametersFlat.dyf │ ├── SharedParametersGrouped.dyf │ ├── SharedParametersPath.dyf │ ├── SharedParametersRepath.dyf │ ├── SheetsCreate.dyf │ ├── SheetsGetByNumber.dyf │ ├── SheetsGetRevisionNumbers.dyf │ ├── SheetsIsPlaceholder.dyf │ ├── SheetsNameFormatted.dyf │ ├── SheetsRevisions.dyf │ ├── SheetsRevisionsAdd.dyf │ ├── SheetsRevisionsRemove.dyf │ ├── SheetsTitleblock.dyf │ ├── SpacesCreateType.dyf │ ├── SpacesGetType.dyf │ ├── StairsAddPath.dyf │ ├── StringAlphabet.dyf │ ├── StringCaseSplit.dyf │ ├── StringCipherFrom.dyf │ ├── StringCipherTo.dyf │ ├── StringExplode.dyf │ ├── StringFromObject.dyf │ ├── StringJoin.dyf │ ├── StringOccurences.dyf │ ├── StringRegex.dyf │ ├── StringRevitLegal.dyf │ ├── StringRounded.dyf │ ├── StringsWindowsLegal.dyf │ ├── SurfaceClampZ.dyf │ ├── SurfacePopulate.dyf │ ├── TimerCheck.dyf │ ├── TimerDelay.dyf │ ├── TimerStart.dyf │ ├── UIDropdown.dyf │ ├── UILogoPath.dyf │ ├── UIMessenger.dyf │ ├── UIPather.dyf │ ├── VectorFromString.dyf │ ├── VectorGroupByDirection.dyf │ ├── VectorGroupParallel.dyf │ ├── ViewFamilyTypes3d.dyf │ ├── ViewFamilyTypesElevation.dyf │ ├── ViewFamilyTypesFamily.dyf │ ├── ViewFamilyTypesFamilyName.dyf │ ├── ViewFamilyTypesFloorPlan.dyf │ ├── ViewSheetSetCreate.dyf │ ├── ViewSheetSetsViews.dyf │ ├── ViewportsCreate.dyf │ ├── ViewportsGetCentre.dyf │ ├── ViewportsRelatives.dyf │ ├── ViewsAncestry.dyf │ ├── ViewsApplyTemplateByName.dyf │ ├── ViewsCreateDependents.dyf │ ├── ViewsCreateElevationBodies.dyf │ ├── ViewsCreateElevationViews.dyf │ ├── ViewsCreatePlans.dyf │ ├── ViewsDependents.dyf │ ├── ViewsFromSun.dyf │ ├── ViewsGetCropBox.dyf │ ├── ViewsLevel.dyf │ ├── ViewsOpen.dyf │ ├── ViewsOverrideCrop.dyf │ ├── ViewsParent.dyf │ ├── ViewsPhase.dyf │ ├── ViewsPrimary.dyf │ ├── ViewsSectionBox.dyf │ ├── ViewsSetCropBox.dyf │ ├── ViewsSetPhase.dyf │ ├── ViewsSetSunSettings.dyf │ ├── ViewsSheet.dyf │ ├── WallsCurtainGridCount.dyf │ ├── WarningsMessage.dyf │ ├── WarningsRelatedElements.dyf │ ├── WebLMGTFY.dyf │ ├── WebUrlOpen.dyf │ ├── WindowsClipboardReceive.dyf │ ├── WindowsClipboardSend.dyf │ ├── WindowsDesktop.dyf │ ├── WindowsDirectoryContents.dyf │ ├── WindowsDirectoryOpen.dyf │ ├── WindowsEmailSend.dyf │ ├── WindowsFileSize.dyf │ ├── WindowsMyDocuments.dyf │ ├── WindowsPrinters.dyf │ ├── WindowsTempFiles.dyf │ ├── WindowsUserFolder.dyf │ ├── WindowsUserNames.dyf │ ├── WindowsUserPaths.dyf │ ├── WorksetsCreate.dyf │ ├── WorksetsIsolateInView.dyf │ └── WorksetsRename.dyf ├── extra │ └── PythonTemplate.py └── pkg.json └── Script samples ├── Crumple_AddParameters.dyn ├── Crumple_BatchExportDwg.dyn ├── Crumple_BatchExportPdf.dyn ├── Crumple_BatchPrintPdf.dyn ├── Crumple_GetParameterValues.dyn ├── Crumple_LoadFamiliesFromPaths.dyn ├── Crumple_OpenFromProject.dyn ├── Crumple_RemoveParameters.dyn ├── Crumple_ReplaceParameters.dyn ├── Crumple_SaveFromProject.dyn ├── Crumple_SetFormulae.dyn ├── Crumple_SetParameterValues.dyn └── Excel ├── Crumple_AddParameters.xlsx ├── Crumple_ReplaceParameters.xlsx ├── Crumple_SetFormulae.xlsx ├── familyValuesExport.xlsx └── familyValuesImport.xlsx /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Crumple/bin/Package.customization.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aussieBIMguru/Crumple/43aa6b46d83316084a2b826c904add6763fd59d3/Crumple/bin/Package.customization.dll -------------------------------------------------------------------------------- /Crumple/dyf/AboutAussieBimGuru.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "8202ba51-b2a8-4f4d-9de2-dff68bf44f39", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Query", 5 | "Description": "Opens the Aussie BIM Guru YouTube channel.", 6 | "Name": "© About.AussieBIMGuru", 7 | "ElementResolver": { 8 | "ResolutionMap": { 9 | "DSCore.List": { 10 | "Key": "DSCore.List", 11 | "Value": "DSCoreNodes.dll" 12 | } 13 | } 14 | }, 15 | "Inputs": [], 16 | "Outputs": [], 17 | "Nodes": [ 18 | { 19 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 20 | "NodeType": "PythonScriptNode", 21 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport os\r\n\r\n# Open URL\r\nif IN[0]:\r\n\tos.system(\"start \\\"\\\" https://www.youtube.com.au/aussiebimguru\")\r\n\tOUT = \"Enjoy!\"\r\nelse:\r\n\tOUT = \"Set runMe to True!\"", 22 | "Engine": "CPython3", 23 | "VariableInputPorts": true, 24 | "Id": "b8417d1f1dca41218752469a97b3dfad", 25 | "Inputs": [ 26 | { 27 | "Id": "c627c257fddc4cf3be90a72039aa9f20", 28 | "Name": "IN[0]", 29 | "Description": "Input #0", 30 | "UsingDefaultValue": false, 31 | "Level": 2, 32 | "UseLevels": false, 33 | "KeepListStructure": false 34 | } 35 | ], 36 | "Outputs": [ 37 | { 38 | "Id": "9a1ba35f25134c5688c4a05c58012e65", 39 | "Name": "OUT", 40 | "Description": "Result of the python script", 41 | "UsingDefaultValue": false, 42 | "Level": 2, 43 | "UseLevels": false, 44 | "KeepListStructure": false 45 | } 46 | ], 47 | "Replication": "Disabled", 48 | "Description": "Runs an embedded Python script." 49 | }, 50 | { 51 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 52 | "NodeType": "OutputNode", 53 | "ElementResolver": null, 54 | "Symbol": "=)", 55 | "Id": "f09eeb6b31704eb5b5ec7933be7d7f13", 56 | "Inputs": [ 57 | { 58 | "Id": "df39a005678e4267a71baf50f171abbd", 59 | "Name": "", 60 | "Description": "", 61 | "UsingDefaultValue": false, 62 | "Level": 2, 63 | "UseLevels": false, 64 | "KeepListStructure": false 65 | } 66 | ], 67 | "Outputs": [], 68 | "Replication": "Disabled", 69 | "Description": "A function output, use with custom nodes" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 73 | "NodeType": "InputNode", 74 | "Parameter": { 75 | "Name": "runMe", 76 | "TypeName": "bool", 77 | "TypeRank": 0, 78 | "DefaultValue": "false", 79 | "Description": "" 80 | }, 81 | "Id": "102618fcce89479fa610b2b169a2dbf1", 82 | "Inputs": [], 83 | "Outputs": [ 84 | { 85 | "Id": "021fb82743d049f1a4c87dfef864875f", 86 | "Name": "", 87 | "Description": "Symbol", 88 | "UsingDefaultValue": false, 89 | "Level": 2, 90 | "UseLevels": false, 91 | "KeepListStructure": false 92 | } 93 | ], 94 | "Replication": "Disabled", 95 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 96 | } 97 | ], 98 | "Connectors": [ 99 | { 100 | "Start": "9a1ba35f25134c5688c4a05c58012e65", 101 | "End": "df39a005678e4267a71baf50f171abbd", 102 | "Id": "cc430a54203048878bee4ebba6dea545" 103 | }, 104 | { 105 | "Start": "021fb82743d049f1a4c87dfef864875f", 106 | "End": "c627c257fddc4cf3be90a72039aa9f20", 107 | "Id": "4157cc79342d4ec3b9991793d6d38745" 108 | } 109 | ], 110 | "Dependencies": [], 111 | "NodeLibraryDependencies": [], 112 | "Author": "None provided", 113 | "Bindings": [], 114 | "View": { 115 | "Dynamo": { 116 | "ScaleFactor": 1.0, 117 | "HasRunWithoutCrash": false, 118 | "IsVisibleInDynamoLibrary": true, 119 | "Version": "2.12.1.8246", 120 | "RunType": "Manual", 121 | "RunPeriod": "1000" 122 | }, 123 | "Camera": { 124 | "Name": "Background Preview", 125 | "EyeX": -17.0, 126 | "EyeY": 24.0, 127 | "EyeZ": 50.0, 128 | "LookX": 12.0, 129 | "LookY": -13.0, 130 | "LookZ": -58.0, 131 | "UpX": 0.0, 132 | "UpY": 1.0, 133 | "UpZ": 0.0 134 | }, 135 | "NodeViews": [ 136 | { 137 | "ShowGeometry": true, 138 | "Name": "Python Script", 139 | "Id": "b8417d1f1dca41218752469a97b3dfad", 140 | "IsSetAsInput": false, 141 | "IsSetAsOutput": false, 142 | "Excluded": false, 143 | "X": 250.0, 144 | "Y": 0.0 145 | }, 146 | { 147 | "ShowGeometry": true, 148 | "Name": "Output", 149 | "Id": "f09eeb6b31704eb5b5ec7933be7d7f13", 150 | "IsSetAsInput": false, 151 | "IsSetAsOutput": false, 152 | "Excluded": false, 153 | "X": 449.0, 154 | "Y": 0.0 155 | }, 156 | { 157 | "ShowGeometry": true, 158 | "Name": "Input", 159 | "Id": "102618fcce89479fa610b2b169a2dbf1", 160 | "IsSetAsInput": false, 161 | "IsSetAsOutput": false, 162 | "Excluded": false, 163 | "X": -6.8041533781070029, 164 | "Y": -0.46691019918907273 165 | } 166 | ], 167 | "Annotations": [], 168 | "X": 51.642653060182681, 169 | "Y": 315.32489167351281, 170 | "Zoom": 1.3000563819327176 171 | } 172 | } -------------------------------------------------------------------------------- /Crumple/dyf/AboutBimGuruEducation.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "aa7be46e-eaae-4ddc-b15f-ee5397819d7b", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Query", 5 | "Description": "Takes you to my course and content platform, courses.bimguru.education.", 6 | "Name": "© About.BIMGuruEducation", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport os\r\n\r\n# Open URL\r\nif IN[0]:\r\n\tos.system(\"start \\\"\\\" https://courses.bimguru.education\")\r\n\tOUT = \"Enjoy!\"\r\nelse:\r\n\tOUT = \"Set runMe to True!\"", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "966c8de5c6f44e17af3c61e8aa1427cd", 20 | "Inputs": [ 21 | { 22 | "Id": "ecbb2c1018574981b7046380df8dbdb7", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "64f2192e169447f3974f1cd0fbab8332", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "runMe", 50 | "TypeName": "bool", 51 | "TypeRank": 0, 52 | "DefaultValue": "false", 53 | "Description": "" 54 | }, 55 | "Id": "242bde89f96c4f06b21a1d8ff5ff8f60", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "ed68e74a1e834c67bf46027367e31ec4", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "=)", 76 | "Id": "00df424837f64dee84f77d8d2c9e57e8", 77 | "Inputs": [ 78 | { 79 | "Id": "c6c3a013c2d24bdb88a048716d184afe", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "64f2192e169447f3974f1cd0fbab8332", 96 | "End": "c6c3a013c2d24bdb88a048716d184afe", 97 | "Id": "dd230bfaaa564acea03bb877bab9dc1a" 98 | }, 99 | { 100 | "Start": "ed68e74a1e834c67bf46027367e31ec4", 101 | "End": "ecbb2c1018574981b7046380df8dbdb7", 102 | "Id": "432124a7473a480391b7dfbe6a9e3b67" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "966c8de5c6f44e17af3c61e8aa1427cd", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "242bde89f96c4f06b21a1d8ff5ff8f60", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 25.494725830323432, 149 | "Y": 0.90984887677205961 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "00df424837f64dee84f77d8d2c9e57e8", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 415.2184039606301, 159 | "Y": -1.7151933992588226 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 150.55795542656591, 164 | "Y": 291.26792236771058, 165 | "Zoom": 1.33823125 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/CoordinatesGetLinkTransform.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "603a34a9-4ed4-401e-8ac1-5fb67665edf6", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a Revit link instance, returns the coordinate system for transformation of location.", 6 | "Name": "© Coordinates.GetLinkTransform", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference(\"RevitAPI\")\r\nfrom Autodesk.Revit.DB import RevitLinkInstance\r\n\r\nclr.AddReference(\"RevitNodes\")\r\nimport Revit\r\nclr.ImportExtensions(Revit.GeometryConversion)\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n\tresult = input if isinstance(input, list) else [input]\r\n\treturn UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Get link transform\r\nlinks = uwlist(IN[0])\r\nxForms = [l.GetTotalTransform().ToCoordinateSystem(True) for l in links]\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(xForms)\r\n", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "d12ec550035b4a50a6254ff17c4a3dfc", 20 | "Inputs": [ 21 | { 22 | "Id": "0d9ffc53136149b9bbc5e8cb97a947f6", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "06f8205a6825460583806504135e6f45", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "linkInstance", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "629fad2d0471454ea8cf7d435add99b7", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "87a59c98b8b549ff95f6a271d7f0ed1e", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "coordinateSystem", 76 | "Id": "a9cf87601a304bd0ba30c2c19e4b977b", 77 | "Inputs": [ 78 | { 79 | "Id": "5335fb28ceb8497e8b352b557b6d0819", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "06f8205a6825460583806504135e6f45", 96 | "End": "5335fb28ceb8497e8b352b557b6d0819", 97 | "Id": "bb2adbc5e20c4a0984c792bdc59d4d8e" 98 | }, 99 | { 100 | "Start": "87a59c98b8b549ff95f6a271d7f0ed1e", 101 | "End": "0d9ffc53136149b9bbc5e8cb97a947f6", 102 | "Id": "d3413c2033ce46c4bd46dad268452e71" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "d12ec550035b4a50a6254ff17c4a3dfc", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "629fad2d0471454ea8cf7d435add99b7", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -22.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "a9cf87601a304bd0ba30c2c19e4b977b", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 428.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 53.58169934640523, 164 | "Y": 271.59477124183007, 165 | "Zoom": 1.0718954248366013 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/DynamoCurrentScript.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "5aad4c9d-245f-4f78-acc6-be907825c1f4", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Application.Query", 5 | "Description": "Returns the name of the currently active Dynamo script, with an optional extension.", 6 | "Name": "© Dynamo.CurrentScript", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference('DynamoRevitDS')\r\nimport Dynamo\r\n\r\n# Check Dynamo workspace properties\r\ndynamoRevit = Dynamo.Applications.DynamoRevit()\r\ncurrentWorkspace = dynamoRevit.RevitDynamoModel.CurrentWorkspace\r\nscript = currentWorkspace.Name\r\n\r\nif IN[0]:\r\n\text = \".dyn\"\r\nelse:\r\n\text = \"\"\r\n\r\n# Preparing output to Dynamo\r\nOUT = script + ext", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "da04c7733c6f4771800362c6859bc7b0", 20 | "Inputs": [ 21 | { 22 | "Id": "838c02795c3a4ed19827a82a7afe1f71", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "1d5a896f48dc41cdb982aea7feff8615", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "extension", 50 | "TypeName": "bool", 51 | "TypeRank": 0, 52 | "DefaultValue": "false", 53 | "Description": "" 54 | }, 55 | "Id": "bb305af7c1464bb583e066fceb01f5b6", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "9709e1d8cd664b9db27a524a63684144", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "scriptName", 76 | "Id": "2ba20489815f46828a1b8957f45087e7", 77 | "Inputs": [ 78 | { 79 | "Id": "74f9e75df5de40a08639b1732bde7a58", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "1d5a896f48dc41cdb982aea7feff8615", 96 | "End": "74f9e75df5de40a08639b1732bde7a58", 97 | "Id": "69689b9071b44ad1bb7ed81e048a339f" 98 | }, 99 | { 100 | "Start": "9709e1d8cd664b9db27a524a63684144", 101 | "End": "838c02795c3a4ed19827a82a7afe1f71", 102 | "Id": "5f41f4f52e7c44e88bea110bde6266ab" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "da04c7733c6f4771800362c6859bc7b0", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "bb305af7c1464bb583e066fceb01f5b6", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 0.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "2ba20489815f46828a1b8957f45087e7", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 449.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -83.077137037186418, 164 | "Y": 359.60372023899589, 165 | "Zoom": 1.3708286388679531 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/ElementsByUniqueId.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "0a2c0186-e5c0-4f95-8cb4-cb2246823d8b", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Actions", 5 | "Description": "Given a Unique Id as a string, returns the corresponding element in Revit.", 6 | "Name": "© Elements.ByUniqueID", 7 | "ElementResolver": { 8 | "ResolutionMap": { 9 | "Revit.Elements.ElementSelector": { 10 | "Key": "Revit.Elements.ElementSelector", 11 | "Value": "RevitNodes.dll" 12 | } 13 | } 14 | }, 15 | "Inputs": [], 16 | "Outputs": [], 17 | "Nodes": [ 18 | { 19 | "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", 20 | "NodeType": "CodeBlockNode", 21 | "Code": "Revit.Elements.ElementSelector.ByUniqueId(elemId);", 22 | "Id": "9baac73417b34675acae4dfbe6d7aacd", 23 | "Inputs": [ 24 | { 25 | "Id": "b2df9a6747114e4cb8462cda22fda564", 26 | "Name": "elemId", 27 | "Description": "elemId", 28 | "UsingDefaultValue": false, 29 | "Level": 2, 30 | "UseLevels": false, 31 | "KeepListStructure": false 32 | } 33 | ], 34 | "Outputs": [ 35 | { 36 | "Id": "16640536c81d4f9286e4b9afd263b8ae", 37 | "Name": "", 38 | "Description": "Value of expression at line 1", 39 | "UsingDefaultValue": false, 40 | "Level": 2, 41 | "UseLevels": false, 42 | "KeepListStructure": false 43 | } 44 | ], 45 | "Replication": "Disabled", 46 | "Description": "Allows for DesignScript code to be authored directly" 47 | }, 48 | { 49 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 50 | "NodeType": "OutputNode", 51 | "ElementResolver": null, 52 | "Symbol": "//Matching Revit elements\r\n//found, if any.\r\nelements", 53 | "Id": "ad039c0e72e4466a8fbc038f45836d47", 54 | "Inputs": [ 55 | { 56 | "Id": "765754090480414584d2ae297ce7b205", 57 | "Name": "", 58 | "Description": "", 59 | "UsingDefaultValue": false, 60 | "Level": 2, 61 | "UseLevels": false, 62 | "KeepListStructure": false 63 | } 64 | ], 65 | "Outputs": [], 66 | "Replication": "Disabled", 67 | "Description": "A function output, use with custom nodes" 68 | }, 69 | { 70 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 71 | "NodeType": "InputNode", 72 | "Parameter": { 73 | "Name": "uniqueId", 74 | "TypeName": "string", 75 | "TypeRank": 0, 76 | "DefaultValue": null, 77 | "Description": "The element's Unique\nId as a string." 78 | }, 79 | "Id": "21405c97983d45059b214d3a9b4e1d48", 80 | "Inputs": [], 81 | "Outputs": [ 82 | { 83 | "Id": "93f02a225e4c4938a80bed98ba66abc9", 84 | "Name": "", 85 | "Description": "Symbol", 86 | "UsingDefaultValue": false, 87 | "Level": 2, 88 | "UseLevels": false, 89 | "KeepListStructure": false 90 | } 91 | ], 92 | "Replication": "Disabled", 93 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 94 | } 95 | ], 96 | "Connectors": [ 97 | { 98 | "Start": "16640536c81d4f9286e4b9afd263b8ae", 99 | "End": "765754090480414584d2ae297ce7b205", 100 | "Id": "8ec0f567509e45879d51841013193002" 101 | }, 102 | { 103 | "Start": "93f02a225e4c4938a80bed98ba66abc9", 104 | "End": "b2df9a6747114e4cb8462cda22fda564", 105 | "Id": "f08c77b7717d465589023b4d967a41d8" 106 | } 107 | ], 108 | "Dependencies": [], 109 | "NodeLibraryDependencies": [], 110 | "Author": "None provided", 111 | "Bindings": [], 112 | "View": { 113 | "Dynamo": { 114 | "ScaleFactor": 1.0, 115 | "HasRunWithoutCrash": false, 116 | "IsVisibleInDynamoLibrary": true, 117 | "Version": "2.12.1.8246", 118 | "RunType": "Manual", 119 | "RunPeriod": "1000" 120 | }, 121 | "Camera": { 122 | "Name": "Background Preview", 123 | "EyeX": -17.0, 124 | "EyeY": 24.0, 125 | "EyeZ": 50.0, 126 | "LookX": 12.0, 127 | "LookY": -13.0, 128 | "LookZ": -58.0, 129 | "UpX": 0.0, 130 | "UpY": 1.0, 131 | "UpZ": 0.0 132 | }, 133 | "NodeViews": [ 134 | { 135 | "ShowGeometry": true, 136 | "Name": "Code Block", 137 | "Id": "9baac73417b34675acae4dfbe6d7aacd", 138 | "IsSetAsInput": false, 139 | "IsSetAsOutput": false, 140 | "Excluded": false, 141 | "X": 250.0, 142 | "Y": 0.0 143 | }, 144 | { 145 | "ShowGeometry": true, 146 | "Name": "Output", 147 | "Id": "ad039c0e72e4466a8fbc038f45836d47", 148 | "IsSetAsInput": false, 149 | "IsSetAsOutput": false, 150 | "Excluded": false, 151 | "X": 817.35344971159316, 152 | "Y": -4.8620670512092943 153 | }, 154 | { 155 | "ShowGeometry": true, 156 | "Name": "Input", 157 | "Id": "21405c97983d45059b214d3a9b4e1d48", 158 | "IsSetAsInput": false, 159 | "IsSetAsOutput": false, 160 | "Excluded": false, 161 | "X": 7.3247595472052467, 162 | "Y": -4.2792067421324873 163 | } 164 | ], 165 | "Annotations": [], 166 | "X": 167.00944187901757, 167 | "Y": 285.69928694876563, 168 | "Zoom": 0.59748709481578621 169 | } 170 | } -------------------------------------------------------------------------------- /Crumple/dyf/ExcelWorksheets.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "e717951d-73c1-432a-ac2e-e18ba511a9b7", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.IronPython.Query", 5 | "Description": "Given a file path to an Excel file, return its worksheet names.", 6 | "Name": "🐍 Excel.Worksheets", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\n# Free for use\n# BIM Guru, www.bimguru.com.au\n\n# Boilerplate text\nimport clr\n\ntry:\n\tclr.AddReferenceByName('Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c')\nexcept:\n\tclr.AddReference('Microsoft.Office.Interop.Excel')\n\nfrom Microsoft.Office.Interop import Excel\n\n# Set up conditions to read Excel\nxlApp = Excel.ApplicationClass()\nxlApp.Visible = False\nxlApp.DisplayAlerts = False\n\n# Open Excel file path and check worksheet names\nworkbk = xlApp.Workbooks.Open(IN[0])\nworksheets = workbk.Worksheets\nnames = [w.Name for w in worksheets]\n\n# Close Excel\nworkbk.Close()\nxlApp.Quit()\n\nOUT = names", 17 | "VariableInputPorts": true, 18 | "Id": "95898ed70e7c442ab57579512209ce3d", 19 | "Inputs": [ 20 | { 21 | "Id": "dbb25d50c160462fb7ab3f7f9d811803", 22 | "Name": "IN[0]", 23 | "Description": "Input #0", 24 | "UsingDefaultValue": false, 25 | "Level": 2, 26 | "UseLevels": false, 27 | "KeepListStructure": false 28 | } 29 | ], 30 | "Outputs": [ 31 | { 32 | "Id": "bb1bf4c3bc99429dab5a6ea83a8ad658", 33 | "Name": "OUT", 34 | "Description": "Result of the python script", 35 | "UsingDefaultValue": false, 36 | "Level": 2, 37 | "UseLevels": false, 38 | "KeepListStructure": false 39 | } 40 | ], 41 | "Replication": "Disabled", 42 | "Description": "Runs an embedded IronPython script." 43 | }, 44 | { 45 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 46 | "NodeType": "InputNode", 47 | "Parameter": { 48 | "Name": "filepath", 49 | "TypeName": "var", 50 | "TypeRank": -1, 51 | "DefaultValue": null, 52 | "Description": "" 53 | }, 54 | "Id": "1513fdc6649840808f47e760587d2ac1", 55 | "Inputs": [], 56 | "Outputs": [ 57 | { 58 | "Id": "31d2856f4fb3444881a70ae0e51ff028", 59 | "Name": "", 60 | "Description": "Symbol", 61 | "UsingDefaultValue": false, 62 | "Level": 2, 63 | "UseLevels": false, 64 | "KeepListStructure": false 65 | } 66 | ], 67 | "Replication": "Disabled", 68 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 69 | }, 70 | { 71 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 72 | "NodeType": "OutputNode", 73 | "ElementResolver": null, 74 | "Symbol": "worksheetNames", 75 | "Id": "c136d25f620d40199ca9ff538771ce1f", 76 | "Inputs": [ 77 | { 78 | "Id": "c8fcaa0ff6b94f7e8f375bf37870e571", 79 | "Name": "", 80 | "Description": "", 81 | "UsingDefaultValue": false, 82 | "Level": 2, 83 | "UseLevels": false, 84 | "KeepListStructure": false 85 | } 86 | ], 87 | "Outputs": [], 88 | "Replication": "Disabled", 89 | "Description": "A function output, use with custom nodes" 90 | } 91 | ], 92 | "Connectors": [ 93 | { 94 | "Start": "bb1bf4c3bc99429dab5a6ea83a8ad658", 95 | "End": "c8fcaa0ff6b94f7e8f375bf37870e571", 96 | "Id": "af494e2b6ce249a5bfd99fcc6cf3fd02" 97 | }, 98 | { 99 | "Start": "31d2856f4fb3444881a70ae0e51ff028", 100 | "End": "dbb25d50c160462fb7ab3f7f9d811803", 101 | "Id": "ff0f869061ed41ac9c4a90aa5b901b67" 102 | } 103 | ], 104 | "Dependencies": [], 105 | "NodeLibraryDependencies": [], 106 | "Bindings": [], 107 | "View": { 108 | "Dynamo": { 109 | "ScaleFactor": 1.0, 110 | "HasRunWithoutCrash": false, 111 | "IsVisibleInDynamoLibrary": true, 112 | "Version": "2.3.1.11775", 113 | "RunType": "Manual", 114 | "RunPeriod": "1000" 115 | }, 116 | "Camera": { 117 | "Name": "Background Preview", 118 | "EyeX": -17.0, 119 | "EyeY": 24.0, 120 | "EyeZ": 50.0, 121 | "LookX": 12.0, 122 | "LookY": -13.0, 123 | "LookZ": -58.0, 124 | "UpX": 0.0, 125 | "UpY": 1.0, 126 | "UpZ": 0.0 127 | }, 128 | "NodeViews": [ 129 | { 130 | "ShowGeometry": true, 131 | "Name": "Python Script", 132 | "Id": "95898ed70e7c442ab57579512209ce3d", 133 | "IsSetAsInput": false, 134 | "IsSetAsOutput": false, 135 | "Excluded": false, 136 | "X": 250.0, 137 | "Y": 0.0 138 | }, 139 | { 140 | "ShowGeometry": true, 141 | "Name": "Input", 142 | "Id": "1513fdc6649840808f47e760587d2ac1", 143 | "IsSetAsInput": false, 144 | "IsSetAsOutput": false, 145 | "Excluded": false, 146 | "X": 0.0, 147 | "Y": 0.0 148 | }, 149 | { 150 | "ShowGeometry": true, 151 | "Name": "Output", 152 | "Id": "c136d25f620d40199ca9ff538771ce1f", 153 | "IsSetAsInput": false, 154 | "IsSetAsOutput": false, 155 | "Excluded": false, 156 | "X": 449.0, 157 | "Y": 0.0 158 | } 159 | ], 160 | "Annotations": [], 161 | "X": 30.0, 162 | "Y": 392.12121212121212, 163 | "Zoom": 1.7878787878787878 164 | } 165 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyCategoryName.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "675b3734-f77b-4666-9d50-5fc39d9bfe72", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Queryt", 5 | "Description": "Returns the category name a family is associated with.", 6 | "Name": "© Family.CategoryName", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nfamilies = uwlist(IN[0])\r\n\r\n# Try to get family categories\r\ncategories, names = [],[]\r\n\r\nfor f in families:\r\n try:\r\n names.append(f.FamilyCategory.Name)\r\n except:\r\n names.append(None)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(names)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "ac3352872a9f4f809db8e41b5a7872b5", 20 | "Inputs": [ 21 | { 22 | "Id": "4977b1faca8144b1ba2d84f901d40bd6", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "e257988ac9484b979e8c4a434e676ed5", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 47 | "NodeType": "OutputNode", 48 | "ElementResolver": null, 49 | "Symbol": "categoryNames", 50 | "Id": "99fa29bc779d4243a3d2e5c110b959d4", 51 | "Inputs": [ 52 | { 53 | "Id": "c9db1a04cd004e88bd97f07e99954efc", 54 | "Name": "", 55 | "Description": "", 56 | "UsingDefaultValue": false, 57 | "Level": 2, 58 | "UseLevels": false, 59 | "KeepListStructure": false 60 | } 61 | ], 62 | "Outputs": [], 63 | "Replication": "Disabled", 64 | "Description": "A function output, use with custom nodes" 65 | }, 66 | { 67 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 68 | "NodeType": "InputNode", 69 | "Parameter": { 70 | "Name": "families", 71 | "TypeName": "var", 72 | "TypeRank": -1, 73 | "DefaultValue": null, 74 | "Description": "" 75 | }, 76 | "Id": "ee883c283b104d91a6a21459c8c0b124", 77 | "Inputs": [], 78 | "Outputs": [ 79 | { 80 | "Id": "0aea0292833e403592dbd8de100921d0", 81 | "Name": "", 82 | "Description": "Symbol", 83 | "UsingDefaultValue": false, 84 | "Level": 2, 85 | "UseLevels": false, 86 | "KeepListStructure": false 87 | } 88 | ], 89 | "Replication": "Disabled", 90 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "e257988ac9484b979e8c4a434e676ed5", 96 | "End": "c9db1a04cd004e88bd97f07e99954efc", 97 | "Id": "c839be2560024ef4895a57d8d87ef9ad" 98 | }, 99 | { 100 | "Start": "0aea0292833e403592dbd8de100921d0", 101 | "End": "4977b1faca8144b1ba2d84f901d40bd6", 102 | "Id": "f9c53722c0984054b0911b01a019a42a" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "ac3352872a9f4f809db8e41b5a7872b5", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Output", 144 | "Id": "99fa29bc779d4243a3d2e5c110b959d4", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 449.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Input", 154 | "Id": "ee883c283b104d91a6a21459c8c0b124", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": -33.0, 159 | "Y": -1.5 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 58.0, 164 | "Y": 297.0, 165 | "Zoom": 1.0 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyDocCloseAndSave.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "e0d1e10d-0973-478e-b32d-e696714e8341", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Actions", 5 | "Description": "Attempts to close a family document or list of family documents, and save the families in the process to their current location.", 6 | "Name": "© FamilyDoc.CloseAndSave", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\n# Current doc/app/ui\r\ndocs = tolist(IN[0])\r\noutcomes = []\r\n\r\n# Do some action in a Transaction\r\nfor doc in docs:\r\n\ttry:\r\n\t\tdoc.Close(True)\r\n\t\toutcomes.append(True)\r\n\texcept:\r\n\t\toutcomes.append(False)\r\n\r\n# Preparing output to Dynamo\r\nOUT = outcomes", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "03a21626577240ecb8c07d8ccd633737", 20 | "Inputs": [ 21 | { 22 | "Id": "cf92fc1b99ec43c4814a93b1366ae214", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "ac7ff3456f864020a0c44f833bf751b7", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyDocs", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "A family document or list\nof family documents." 54 | }, 55 | "Id": "c5ac8cb83c254f669c1ae6e48578bbe0", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "ae8d83ce426e4778b72c97248e9223cc", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "wasClosed", 76 | "Id": "688ea9921cf94918aac1c28de14bca92", 77 | "Inputs": [ 78 | { 79 | "Id": "fe41a1c393304d49ae7fa164590fb6e1", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "ac7ff3456f864020a0c44f833bf751b7", 96 | "End": "fe41a1c393304d49ae7fa164590fb6e1", 97 | "Id": "f5553c946eba4ad6a64edaa6370b2588" 98 | }, 99 | { 100 | "Start": "ae8d83ce426e4778b72c97248e9223cc", 101 | "End": "cf92fc1b99ec43c4814a93b1366ae214", 102 | "Id": "24c6f5daed48407eade4dad161c53dea" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "03a21626577240ecb8c07d8ccd633737", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "c5ac8cb83c254f669c1ae6e48578bbe0", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -116.05313138677741, 149 | "Y": 0.35537074954623904 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "688ea9921cf94918aac1c28de14bca92", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 450.35301059284416, 159 | "Y": -1.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 247.26270263228935, 164 | "Y": 351.16135625000004, 165 | "Zoom": 1.33823125 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyDocCloseWithoutSave.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "66f0417f-21ab-4c57-b40f-dfd11f57200b", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Actions", 5 | "Description": "Attempts to close a family document or list of family documents, without saving them.", 6 | "Name": "© FamilyDoc.CloseWithoutSave", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\n# Current doc/app/ui\r\ndocs = tolist(IN[0])\r\noutcomes = []\r\n\r\n# Do some action in a Transaction\r\nfor doc in docs:\r\n\ttry:\r\n\t\tdoc.Close(False)\r\n\t\toutcomes.append(True)\r\n\texcept:\r\n\t\toutcomes.append(False)\r\n\r\n# Preparing output to Dynamo\r\nOUT = outcomes", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "6360f6a821844cd494dcbbb589f30635", 20 | "Inputs": [ 21 | { 22 | "Id": "f638996e6db74f0694f7ce40010276cd", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "a09f1719b7d546b49e4aa689bd09eb4b", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyDocs", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "A family document or list\nof family documents." 54 | }, 55 | "Id": "91263faa6c7c4cf99d391755eea39305", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "3a6bea9ca4c84aacadc75afeaaa89c8d", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "wasClosed", 76 | "Id": "200fbcf4f05d437fa7035b6082d5236e", 77 | "Inputs": [ 78 | { 79 | "Id": "96ec5438f3264178aff5859885990244", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "a09f1719b7d546b49e4aa689bd09eb4b", 96 | "End": "96ec5438f3264178aff5859885990244", 97 | "Id": "72a895dbe4ae43699bcaf37d29e9072b" 98 | }, 99 | { 100 | "Start": "3a6bea9ca4c84aacadc75afeaaa89c8d", 101 | "End": "f638996e6db74f0694f7ce40010276cd", 102 | "Id": "ca05c13b2576429f877b47c60adc1d60" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "6360f6a821844cd494dcbbb589f30635", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "91263faa6c7c4cf99d391755eea39305", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -91.053131386777409, 149 | "Y": 0.35537074954623904 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "200fbcf4f05d437fa7035b6082d5236e", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 448.35301059284416, 159 | "Y": -1.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 241.349231573974, 164 | "Y": 289.10285625, 165 | "Zoom": 1.33823125 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyDocTitle.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "62ea8109-1a89-446e-bdef-47ee44906e0a", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Returns the title of a family document in the unwrapped state. Can be used in conjunction with nodes like 'FamilyDocOpen'.", 6 | "Name": "© FamilyDoc.Title", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Current doc/app/ui\r\ndocs = tolist(IN[0])\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList([d.Title for d in docs])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "26e5f2ec700545aa9c20bdf94f232694", 20 | "Inputs": [ 21 | { 22 | "Id": "902123ac2c594f0797582266481d71bd", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "0800f9428b1e450cb09d6757276a0ec1", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 47 | "NodeType": "OutputNode", 48 | "ElementResolver": null, 49 | "Symbol": "titles", 50 | "Id": "6f7d2dfdebf44ef4a286b0f66ffd237b", 51 | "Inputs": [ 52 | { 53 | "Id": "830f0cda0bf443c88f035053916d49af", 54 | "Name": "", 55 | "Description": "", 56 | "UsingDefaultValue": false, 57 | "Level": 2, 58 | "UseLevels": false, 59 | "KeepListStructure": false 60 | } 61 | ], 62 | "Outputs": [], 63 | "Replication": "Disabled", 64 | "Description": "A function output, use with custom nodes" 65 | }, 66 | { 67 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 68 | "NodeType": "InputNode", 69 | "Parameter": { 70 | "Name": "familyDocs", 71 | "TypeName": "var", 72 | "TypeRank": -1, 73 | "DefaultValue": null, 74 | "Description": "A family document or list\nof family documents." 75 | }, 76 | "Id": "7b12495016a148438f8948f0cd436a4d", 77 | "Inputs": [], 78 | "Outputs": [ 79 | { 80 | "Id": "abbaf1821e3645ae805a498427dc7f22", 81 | "Name": "", 82 | "Description": "Symbol", 83 | "UsingDefaultValue": false, 84 | "Level": 2, 85 | "UseLevels": false, 86 | "KeepListStructure": false 87 | } 88 | ], 89 | "Replication": "Disabled", 90 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "0800f9428b1e450cb09d6757276a0ec1", 96 | "End": "830f0cda0bf443c88f035053916d49af", 97 | "Id": "bb5f7bb54eb74b92a6c2a7337e525269" 98 | }, 99 | { 100 | "Start": "abbaf1821e3645ae805a498427dc7f22", 101 | "End": "902123ac2c594f0797582266481d71bd", 102 | "Id": "0a0d2feaa9744f6b8056fc808bc1921f" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "26e5f2ec700545aa9c20bdf94f232694", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Output", 144 | "Id": "6f7d2dfdebf44ef4a286b0f66ffd237b", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 449.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Input", 154 | "Id": "7b12495016a148438f8948f0cd436a4d", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": -66.016150740242352, 159 | "Y": -1.0067294751009541 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 160.785699969097, 164 | "Y": 393.758542405135, 165 | "Zoom": 1.0048464499864074 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyIsInPlace.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "f121f3dc-9104-4b97-885d-88dd758309b2", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a family, returns if that family is modelled in place. Noting this is for the family of an instance, not the instance itself.", 6 | "Name": "© Family.IsInPlace", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef IsInPlace(item):\r\n\tif hasattr(item, \"IsInPlace\"): return item.IsInPlace\r\n\telse: return False\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nitems = uwlist(IN[0])\r\n\r\ninPlace = []\r\n\r\nfor i in items:\r\n\tif hasattr(i, \"IsInPlace\"):\r\n\t\tinPlace.append(i.IsInPlace)\r\n\telse:\r\n\t\tinPlace.append(False)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(inPlace)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "d0efc132af0449f0880856532ef0d2f6", 20 | "Inputs": [ 21 | { 22 | "Id": "9e128d68c5054f989405d254d58f0621", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "e0d01dd601b4471ca713bd90206700aa", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "family", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "58fcb5da41b64807ad455995d99da4fb", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "01a6a53a200944649321ff6084610acf", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "isInPlace", 76 | "Id": "2d8c6007a30845e6a077580aab31ef2f", 77 | "Inputs": [ 78 | { 79 | "Id": "b4d35705c8f84f2fb8cf0adc84e109d6", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "e0d01dd601b4471ca713bd90206700aa", 96 | "End": "b4d35705c8f84f2fb8cf0adc84e109d6", 97 | "Id": "81a4081a43734a2ca1e4dbbf6f592730" 98 | }, 99 | { 100 | "Start": "01a6a53a200944649321ff6084610acf", 101 | "End": "9e128d68c5054f989405d254d58f0621", 102 | "Id": "18a02e8fef544475b6d4268278aabc56" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "d0efc132af0449f0880856532ef0d2f6", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "58fcb5da41b64807ad455995d99da4fb", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 0.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "2d8c6007a30845e6a077580aab31ef2f", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 449.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 80.284948191144736, 164 | "Y": 134.0296625, 165 | "Zoom": 1.33823125 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyParamIsInstance.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "f5608fd0-5699-4857-b3f5-0b5513b387c0", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "For a family parameter or list of them, return if the parameters are instance based.", 6 | "Name": "© FamilyParam.IsInstance", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference('RevitAPI')\r\nimport Autodesk \r\nfrom Autodesk.Revit.DB import Parameter\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n#Inputdoc\r\nparams_list = tolist(IN[0])\r\n\r\n# Output the lists\r\nOUT = tolist([param.IsInstance for param in params_list])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "c288c743077a4ee5bab0baf1e1a7b4cc", 20 | "Inputs": [ 21 | { 22 | "Id": "3f06663d99ad497abfe46be8931bf09f", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "a0c6d1211c874b488b6fc599761f63d0", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyParams", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Lists of family parameters." 54 | }, 55 | "Id": "2ddab1ece081465aa22bdb16a9bbd3c4", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "e47aafb66504409ca0d982b86129b34a", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "/*Parameter is instance based.*/\r\n\r\nisInstance", 76 | "Id": "ee428d650d2840af9a9fb4d8a8c65927", 77 | "Inputs": [ 78 | { 79 | "Id": "aa9e229a8f354cb9b1f07c78b9f56f49", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "a0c6d1211c874b488b6fc599761f63d0", 96 | "End": "aa9e229a8f354cb9b1f07c78b9f56f49", 97 | "Id": "4b5bb6313d1c43d78eddebc2b28e3556" 98 | }, 99 | { 100 | "Start": "e47aafb66504409ca0d982b86129b34a", 101 | "End": "3f06663d99ad497abfe46be8931bf09f", 102 | "Id": "c0267c0ab68c48d5b9f3a557b2881122" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script (get data)", 134 | "Id": "c288c743077a4ee5bab0baf1e1a7b4cc", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "2ddab1ece081465aa22bdb16a9bbd3c4", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -132.0, 149 | "Y": -1.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "ee428d650d2840af9a9fb4d8a8c65927", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 518.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 187.28750000000002, 164 | "Y": 223.135, 165 | "Zoom": 1.1575 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyParamIsShared.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "1cb809cf-237b-4f14-b827-9b4555d4c8aa", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "For a family parameter or list of them, return if the parameters are shared.", 6 | "Name": "© FamilyParam.IsShared", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference('RevitAPI')\r\nimport Autodesk \r\nfrom Autodesk.Revit.DB import Parameter\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n#Inputdoc\r\nparams_list = tolist(IN[0])\r\n\r\n# Output the lists\r\nOUT = objOrList([param.IsShared for param in params_list])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f798281e36664c17be9a9677f95d52d5", 20 | "Inputs": [ 21 | { 22 | "Id": "bfbba45e5c0441d3899353eafe62141b", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "731abc4a11404d858c32522111339b05", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyParams", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Lists of family parameters." 54 | }, 55 | "Id": "7a32f1a5eaa549fa99667485f015b455", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "e9fe394f5a424405aed3d75743efa270", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "/*Parameter is shared.*/\r\n\r\nisShared", 76 | "Id": "73a54e511c6a42af997aa72387d41a69", 77 | "Inputs": [ 78 | { 79 | "Id": "caf665230e9a43ccb952ad57616e7531", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "731abc4a11404d858c32522111339b05", 96 | "End": "caf665230e9a43ccb952ad57616e7531", 97 | "Id": "04b21039ce1445918ac797d759a0ca25" 98 | }, 99 | { 100 | "Start": "e9fe394f5a424405aed3d75743efa270", 101 | "End": "bfbba45e5c0441d3899353eafe62141b", 102 | "Id": "03faf85ab9334b4eb38d13fd041b46c8" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script (get data)", 134 | "Id": "f798281e36664c17be9a9677f95d52d5", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "7a32f1a5eaa549fa99667485f015b455", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -124.0, 149 | "Y": -2.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "73a54e511c6a42af997aa72387d41a69", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 529.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 277.0, 164 | "Y": 245.0, 165 | "Zoom": 1.0 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyParamName.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "271de148-6496-49c6-ba4c-3fbe9bdff88e", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a family parameter of list of them, return the parameter names. Use @L2 levels for list of list processing.", 6 | "Name": "© FamilyParam.Name", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference('RevitAPI')\r\nimport Autodesk \r\nfrom Autodesk.Revit.DB import Parameter\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Try to return name\r\ndef parName(par):\r\n\ttry:\r\n\t\treturn par.Definition.Name\r\n\texcept:\r\n\t\treturn None\r\n\r\n#Inputdoc\r\nparams_list = tolist(IN[0])\r\n\r\n# Output the lists\r\nOUT = objOrList([parName(par) for par in params_list])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "dc15a8b114954e53b72f0d5a7699ced9", 20 | "Inputs": [ 21 | { 22 | "Id": "f7999f4295074991b312744d56407e38", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "87f45fd8852645a9b9539866990c5668", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyParams", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Lists of family parameters." 54 | }, 55 | "Id": "c149922d66d1497491da4ad3cab309f9", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "28ce3e21b2f8465fbaae807954e32fbd", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "/*Parameter names.*/\r\n\r\nparameterNames", 76 | "Id": "716c0bce8a3f4b70b98666e3d29cdd25", 77 | "Inputs": [ 78 | { 79 | "Id": "fb2f4c5fa19e4197a78e06246ccd5f3e", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "87f45fd8852645a9b9539866990c5668", 96 | "End": "fb2f4c5fa19e4197a78e06246ccd5f3e", 97 | "Id": "27c4e85ad2b54f1ab5fd61d8ad83b6e7" 98 | }, 99 | { 100 | "Start": "28ce3e21b2f8465fbaae807954e32fbd", 101 | "End": "f7999f4295074991b312744d56407e38", 102 | "Id": "c25a15414c854b408226b7d85dd3acd9" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script (get names)", 134 | "Id": "dc15a8b114954e53b72f0d5a7699ced9", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "c149922d66d1497491da4ad3cab309f9", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -151.0, 149 | "Y": -2.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "716c0bce8a3f4b70b98666e3d29cdd25", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 576.953959173453, 159 | "Y": 1.2431567403767616 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 233.9335290488815, 164 | "Y": 287.77076736503506, 165 | "Zoom": 1.1047642563030273 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyParamStorageType.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "0369665f-c4cb-4ed4-86ca-de4742082bd7", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "For a family parameter or list of them, return their storage types.", 6 | "Name": "© FamilyParam.StorageType", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference('RevitAPI')\r\nimport Autodesk \r\nfrom Autodesk.Revit.DB import Parameter\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n#Inputdoc\r\nparams_list = tolist(IN[0])\r\n\r\n# Output the lists\r\nOUT = objOrList([param.StorageType for param in params_list])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f28bcae3283d4ebca923c99cab92e7c1", 20 | "Inputs": [ 21 | { 22 | "Id": "ab2252cbc3fd4bc396f9fb1e18e03813", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "874881bfa1544343988f7d6b383a7d3c", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyParams", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Lists of family parameters." 54 | }, 55 | "Id": "8cc9cec43679479399aababd66712e96", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "8ed01ba0c86e414bb5cb8581f02476bb", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "/*Parameter storage type.*/\r\n\r\nstorageTypes", 76 | "Id": "dc054b70257d4d8ba2c88791a765508d", 77 | "Inputs": [ 78 | { 79 | "Id": "f293ec4980884c8a80f9abc957e0b0a2", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "874881bfa1544343988f7d6b383a7d3c", 96 | "End": "f293ec4980884c8a80f9abc957e0b0a2", 97 | "Id": "83240d73dcd047f28770881b8cfc36c6" 98 | }, 99 | { 100 | "Start": "8ed01ba0c86e414bb5cb8581f02476bb", 101 | "End": "ab2252cbc3fd4bc396f9fb1e18e03813", 102 | "Id": "d81950b05ec24565a2a415d236e105d9" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script (get data)", 134 | "Id": "f28bcae3283d4ebca923c99cab92e7c1", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "8cc9cec43679479399aababd66712e96", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -101.0, 149 | "Y": 1.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "dc054b70257d4d8ba2c88791a765508d", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 540.0, 159 | "Y": 2.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 201.237575, 164 | "Y": 295.19101875, 165 | "Zoom": 1.33823125 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FamilyTypeName.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "7adc5a8d-7dd3-4460-b480-f473a87fc809", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "For a family type or list of family types, returns the type names.", 6 | "Name": "© FamilyType.Name", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n#Inputdoc\r\ntypes_list = tolist(IN[0])\r\n\r\n# Output the lists\r\nOUT = objOrList([t.Name for t in types_list])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "9c5efce37ac44eac894c36b4338bcd2d", 20 | "Inputs": [ 21 | { 22 | "Id": "ff51aa0750bf467dad6c8644dbbc168a", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "dfdee016a22d4be3990491bef0b29fcd", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "familyTypes", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Lists of family types." 54 | }, 55 | "Id": "ebddaa1079fe4c73b83faccc00a78b60", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "8fb91772a7f741e0bf4d8bada4407964", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "/*Type names.*/\r\n\r\ntypeNames", 76 | "Id": "3ba28ca97ce04b3ba18257eb45e48ffe", 77 | "Inputs": [ 78 | { 79 | "Id": "74371841dbf149a283c6c7bc82dfe134", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "dfdee016a22d4be3990491bef0b29fcd", 96 | "End": "74371841dbf149a283c6c7bc82dfe134", 97 | "Id": "dbde58253d1f4e65b44c321e4af5c7b7" 98 | }, 99 | { 100 | "Start": "8fb91772a7f741e0bf4d8bada4407964", 101 | "End": "ff51aa0750bf467dad6c8644dbbc168a", 102 | "Id": "0309d4eea72145539ebcb4c1f7600b85" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script (get names)", 134 | "Id": "9c5efce37ac44eac894c36b4338bcd2d", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "ebddaa1079fe4c73b83faccc00a78b60", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -91.0, 149 | "Y": 2.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "3ba28ca97ce04b3ba18257eb45e48ffe", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 552.953959173453, 159 | "Y": 0.2431567403767616 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 251.0, 164 | "Y": 209.0, 165 | "Zoom": 1.0 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/FlowRelay.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "9d2f0d35-5f17-4dda-b31f-f8c8651452d4", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Script.Actions", 5 | "Description": "Passes data forward.", 6 | "Name": "© Flow.Relay", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 15 | "NodeType": "InputNode", 16 | "Parameter": { 17 | "Name": "data", 18 | "TypeName": "var", 19 | "TypeRank": -1, 20 | "DefaultValue": null, 21 | "Description": "" 22 | }, 23 | "Id": "43b8f5f0710a471691c48d4570b447eb", 24 | "Inputs": [], 25 | "Outputs": [ 26 | { 27 | "Id": "93c37d17e80c4158ba4ca12c7a854c17", 28 | "Name": "", 29 | "Description": "Symbol", 30 | "UsingDefaultValue": false, 31 | "Level": 2, 32 | "UseLevels": false, 33 | "KeepListStructure": false 34 | } 35 | ], 36 | "Replication": "Disabled", 37 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 38 | }, 39 | { 40 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 41 | "NodeType": "OutputNode", 42 | "ElementResolver": null, 43 | "Symbol": ">", 44 | "Id": "1ceba9f414034e858a1a4e52548038a3", 45 | "Inputs": [ 46 | { 47 | "Id": "ac6068eee6b34fb29a44afcc2ebfeaef", 48 | "Name": "", 49 | "Description": "", 50 | "UsingDefaultValue": false, 51 | "Level": 2, 52 | "UseLevels": false, 53 | "KeepListStructure": false 54 | } 55 | ], 56 | "Outputs": [], 57 | "Replication": "Disabled", 58 | "Description": "A function output, use with custom nodes" 59 | } 60 | ], 61 | "Connectors": [ 62 | { 63 | "Start": "93c37d17e80c4158ba4ca12c7a854c17", 64 | "End": "ac6068eee6b34fb29a44afcc2ebfeaef", 65 | "Id": "e2922814f74847bc8d3e05686806bfe8" 66 | } 67 | ], 68 | "Dependencies": [], 69 | "NodeLibraryDependencies": [], 70 | "Author": "None provided", 71 | "Bindings": [], 72 | "View": { 73 | "Dynamo": { 74 | "ScaleFactor": 1.0, 75 | "HasRunWithoutCrash": false, 76 | "IsVisibleInDynamoLibrary": true, 77 | "Version": "2.12.1.8246", 78 | "RunType": "Manual", 79 | "RunPeriod": "1000" 80 | }, 81 | "Camera": { 82 | "Name": "Background Preview", 83 | "EyeX": -17.0, 84 | "EyeY": 24.0, 85 | "EyeZ": 50.0, 86 | "LookX": 12.0, 87 | "LookY": -13.0, 88 | "LookZ": -58.0, 89 | "UpX": 0.0, 90 | "UpY": 1.0, 91 | "UpZ": 0.0 92 | }, 93 | "NodeViews": [ 94 | { 95 | "ShowGeometry": true, 96 | "Name": "Input", 97 | "Id": "43b8f5f0710a471691c48d4570b447eb", 98 | "IsSetAsInput": false, 99 | "IsSetAsOutput": false, 100 | "Excluded": false, 101 | "X": 91.0, 102 | "Y": 206.0 103 | }, 104 | { 105 | "ShowGeometry": true, 106 | "Name": "Output", 107 | "Id": "1ceba9f414034e858a1a4e52548038a3", 108 | "IsSetAsInput": false, 109 | "IsSetAsOutput": false, 110 | "Excluded": false, 111 | "X": 369.01097997823615, 112 | "Y": 205.01097997823621 113 | } 114 | ], 115 | "Annotations": [], 116 | "X": 105.9611521328294, 117 | "Y": 73.040792103131764, 118 | "Zoom": 1.33823125 119 | } 120 | } -------------------------------------------------------------------------------- /Crumple/dyf/GroupHasExclusions.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "eba79023-c6f3-432f-b7f2-7ebb17850c2c", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Returns a boolean as to whether a group contains excluded elements.", 6 | "Name": "© Groups.HasExclusions", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Boilerplate text\r\nimport clr\r\n\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\ngroups = uwlist(IN[0])\r\n\r\nexcluded = []\r\n\r\n# Check for excluded elements\r\nfor group in groups:\r\n\tif \"excluded\" in group.Name:\r\n\t\texcluded.append(True)\r\n\telse:\r\n\t\texcluded.append(False)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(excluded)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "c1adc7efc66a46fe8ee93f62afab866f", 20 | "Inputs": [ 21 | { 22 | "Id": "580de47280574951b8229486b99cc48f", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "9bc3cbb5ac8448d4a6f37737fd780afd", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "groups", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "3323dac25bcc4db38d91475fee24f54b", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "252667b31fd049809aa31a37794c0817", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "hasExcluded", 76 | "Id": "9590237dcb1d4beea9bbcd1489062daf", 77 | "Inputs": [ 78 | { 79 | "Id": "21c6275a13304e009dd580c8c8f52c4a", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "9bc3cbb5ac8448d4a6f37737fd780afd", 96 | "End": "21c6275a13304e009dd580c8c8f52c4a", 97 | "Id": "ab1641d042ac46bca6af56c37c1a9791" 98 | }, 99 | { 100 | "Start": "252667b31fd049809aa31a37794c0817", 101 | "End": "580de47280574951b8229486b99cc48f", 102 | "Id": "447861d99c234eefb89bddc005016aca" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "c1adc7efc66a46fe8ee93f62afab866f", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "3323dac25bcc4db38d91475fee24f54b", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 6.8968343271170056, 149 | "Y": -0.70356431005058084 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "9590237dcb1d4beea9bbcd1489062daf", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 442.32455153318642, 159 | "Y": 0.70356431005058084 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 153.4690536016347, 164 | "Y": 340.60452655693376, 165 | "Zoom": 1.4213341775794619 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/ListForce.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "9ae1a7ec-8a71-4e6c-9d3a-422f659043e4", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Data.Actions", 5 | "Description": "A basic node to check if the input is in the form of a list, and if not it forces it to become one. This simple python script is useful for incorporation into larger scripts for iterating.", 6 | "Name": "© List.Force", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n#Code\r\nif isinstance(IN[0], list):\r\n\tOUT = IN[0]\r\nelse:\r\n\tOUT = [IN[0]]", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "c3284eaff77040899d5761e42a0b5bf5", 20 | "Inputs": [ 21 | { 22 | "Id": "0412bc6ebd694f0984199ae2d3dc3492", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "33ffa4e34c7a4f2da04cf3c88cb18384", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "items", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Non-list data" 54 | }, 55 | "Id": "3638f9c782844d758cb7ab859d5c2d30", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "3d98bc9a472a4cafad2a985ee52417e3", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "//Data returned as a list format.\r\ntoList", 76 | "Id": "2f7ca9f037c948b8a3dbd216080a4e18", 77 | "Inputs": [ 78 | { 79 | "Id": "665bc1b0e1d94c2fa633788abfed4855", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "33ffa4e34c7a4f2da04cf3c88cb18384", 96 | "End": "665bc1b0e1d94c2fa633788abfed4855", 97 | "Id": "9b01e2bd34c84fe7add3cebd656e5b06" 98 | }, 99 | { 100 | "Start": "3d98bc9a472a4cafad2a985ee52417e3", 101 | "End": "0412bc6ebd694f0984199ae2d3dc3492", 102 | "Id": "85ce86591edc4c059176830654e08ca5" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "c3284eaff77040899d5761e42a0b5bf5", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 110.31102203588171, 139 | "Y": 85.073433824526887 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "3638f9c782844d758cb7ab859d5c2d30", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -127.52774577173972, 149 | "Y": 86.059031778532528 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "2f7ca9f037c948b8a3dbd216080a4e18", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 275.88193644293494, 159 | "Y": 86.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 248.55084082033812, 164 | "Y": 245.75120897219148, 165 | "Zoom": 1.0792537289518345 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/ListObjectify.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "19c39263-f22e-47d5-9f3c-8476cfa31093", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Data.Actions", 5 | "Description": "Given a list object, if the list is only one object in depth it will return that object instead.", 6 | "Name": "© List.Objectify", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Return object or list\r\ndef objOrList(input):\r\n if isinstance(input, list) and len(input) == 1:\r\n return input[0]\r\n else:\r\n return input\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(IN[0])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f0f7e80443e54432a8bcd13742dc66c7", 20 | "Inputs": [ 21 | { 22 | "Id": "683cecd1a3ab4b7e8493ebd7f262dc94", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "80127e7ac48a4735a2f6cedf2a65d74a", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "items", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "List data" 54 | }, 55 | "Id": "341e5804ca0b4270b57ecf8716092a32", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "4384ee92d5534062b5e825ce3a58af5d", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "objectOrList", 76 | "Id": "51ea45c7d5dc4e71808623ac7f13c9d1", 77 | "Inputs": [ 78 | { 79 | "Id": "01fd9b22be32423bb781140cc59c23ae", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "80127e7ac48a4735a2f6cedf2a65d74a", 96 | "End": "01fd9b22be32423bb781140cc59c23ae", 97 | "Id": "d0f50c0f5ba546e5ac77e948a1897904" 98 | }, 99 | { 100 | "Start": "4384ee92d5534062b5e825ce3a58af5d", 101 | "End": "683cecd1a3ab4b7e8493ebd7f262dc94", 102 | "Id": "ebdccb98937942c4b551554424f8b721" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "f0f7e80443e54432a8bcd13742dc66c7", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 241.0, 139 | "Y": -4.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "341e5804ca0b4270b57ecf8716092a32", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 3.4722542282602831, 149 | "Y": -3.9409682214674717 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "51ea45c7d5dc4e71808623ac7f13c9d1", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 421.0, 159 | "Y": -2.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -209.50977600019377, 164 | "Y": 312.07067263045911, 165 | "Zoom": 1.8747982066553304 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/MathFibonnaci.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "424a0c8a-1dae-4ede-ba5a-f54bdba1817f", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Data.Create", 5 | "Description": "Returns the input number of Fibonnaci numbers.", 6 | "Name": "© Math.Fibonnaci", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", 15 | "NodeType": "CodeBlockNode", 16 | "Code": "def fibonnaci(N=10)\n{\nreturn [Imperative]\n\t{\n\tfib = [0,1];\n\ti=2;\n\twhile (i\" in s.Name\r\n\t\tbools.append(bool)\r\n\texcept:\r\n\t\tbools.append(False)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(bools)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "7a8053f530fe46328ebdd607b72e6dfb", 20 | "Inputs": [ 21 | { 22 | "Id": "dba486f0867b4278a227e9b34250a14a", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "4ecd977b6a3e4765953b03b05b823bfe", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "schedules", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "b39e47c5f4084a07a301c26e8b128b28", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "82946c5d66ef4dfabad41e287ed1b59c", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "isRevschedule", 76 | "Id": "ad5387e41499404f9691f5e67b910556", 77 | "Inputs": [ 78 | { 79 | "Id": "a6e76ef6c1794e38bdc7ff3fe4ae4f40", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "4ecd977b6a3e4765953b03b05b823bfe", 96 | "End": "a6e76ef6c1794e38bdc7ff3fe4ae4f40", 97 | "Id": "f273c575c46141afb3d64afa766569a7" 98 | }, 99 | { 100 | "Start": "82946c5d66ef4dfabad41e287ed1b59c", 101 | "End": "dba486f0867b4278a227e9b34250a14a", 102 | "Id": "1013ca7b958942e3a9fb9def51c6e7e1" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "7a8053f530fe46328ebdd607b72e6dfb", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "b39e47c5f4084a07a301c26e8b128b28", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 0.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "ad5387e41499404f9691f5e67b910556", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 449.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 56.927790140395928, 164 | "Y": 193.59293661255441, 165 | "Zoom": 1.545620359375 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/SchedulesType.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "82aeb30b-e261-4967-85bd-c4e624361574", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a schedule sheet instance, returns the corresponding schedule type.", 6 | "Name": "© Schedules.Type", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nschedules, revschedules, keyschedules = [],[],[]\r\n\r\ncoll = uwlist(IN[0])\r\n\r\nschedTypes = []\r\n\r\nfor s in coll:\r\n\tmaster = s.Document.GetElement(s.ScheduleId)\r\n\tschedTypes.append(master)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(schedTypes)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f66e957523f940c983ddec3e7c44dd05", 20 | "Inputs": [ 21 | { 22 | "Id": "dc270840790444cca51b64deacc1363d", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "92d9f780c68c48e49f2d0e5cfecd016f", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 47 | "NodeType": "OutputNode", 48 | "ElementResolver": null, 49 | "Symbol": "scheduleTypes", 50 | "Id": "1cf041deed12443db02c8b50d8200611", 51 | "Inputs": [ 52 | { 53 | "Id": "8147ee8fb83f4a8abf77f6e8f371a1a7", 54 | "Name": "", 55 | "Description": "", 56 | "UsingDefaultValue": false, 57 | "Level": 2, 58 | "UseLevels": false, 59 | "KeepListStructure": false 60 | } 61 | ], 62 | "Outputs": [], 63 | "Replication": "Disabled", 64 | "Description": "A function output, use with custom nodes" 65 | }, 66 | { 67 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 68 | "NodeType": "InputNode", 69 | "Parameter": { 70 | "Name": "scheduleInstances", 71 | "TypeName": "var", 72 | "TypeRank": -1, 73 | "DefaultValue": null, 74 | "Description": "" 75 | }, 76 | "Id": "0490aa0e84c64b2282edbb40cd5329fb", 77 | "Inputs": [], 78 | "Outputs": [ 79 | { 80 | "Id": "889ce39daf3340c6b796a78b1277dca4", 81 | "Name": "", 82 | "Description": "Symbol", 83 | "UsingDefaultValue": false, 84 | "Level": 2, 85 | "UseLevels": false, 86 | "KeepListStructure": false 87 | } 88 | ], 89 | "Replication": "Disabled", 90 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "92d9f780c68c48e49f2d0e5cfecd016f", 96 | "End": "8147ee8fb83f4a8abf77f6e8f371a1a7", 97 | "Id": "7fe65c73f7ba4f92980a1b6c6219c2fc" 98 | }, 99 | { 100 | "Start": "889ce39daf3340c6b796a78b1277dca4", 101 | "End": "dc270840790444cca51b64deacc1363d", 102 | "Id": "564012b12eee46288431da3b4039a287" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "f66e957523f940c983ddec3e7c44dd05", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Output", 144 | "Id": "1cf041deed12443db02c8b50d8200611", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 449.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Input", 154 | "Id": "0490aa0e84c64b2282edbb40cd5329fb", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": -56.044125408071295, 159 | "Y": 1.175679651779177 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -35.267280356502226, 164 | "Y": 277.94297236372574, 165 | "Zoom": 1.3076413563671876 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/SharedParametersPath.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "a6be4988-4443-4266-8a68-1d4e94652741", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Returns the path to the currently active shared parameters file.", 6 | "Name": "© SharedParameters.Path", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference(\"RevitServices\")\r\nimport RevitServices\r\nfrom RevitServices.Persistence import DocumentManager \r\n\r\n# Current doc/app/ui\r\nuiapp = DocumentManager.Instance.CurrentUIApplication \r\napp = uiapp.Application \r\n\r\n# Preparing output to Dynamo\r\nOUT = app.SharedParametersFilename", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f65196056acd44979c2148bd619213f5", 20 | "Inputs": [ 21 | { 22 | "Id": "595c36b00a034ccc903141514b3a5849", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "8ddc85d9e8604ea794ad2d28fa9ec1a6", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 47 | "NodeType": "OutputNode", 48 | "ElementResolver": null, 49 | "Symbol": "//The path to the SP file.\r\nfilepath", 50 | "Id": "cda915221b50432fbf13ffb8f15887e6", 51 | "Inputs": [ 52 | { 53 | "Id": "3d7c5eaf5083444d9a783577bec262a7", 54 | "Name": "", 55 | "Description": "", 56 | "UsingDefaultValue": false, 57 | "Level": 2, 58 | "UseLevels": false, 59 | "KeepListStructure": false 60 | } 61 | ], 62 | "Outputs": [], 63 | "Replication": "Disabled", 64 | "Description": "A function output, use with custom nodes" 65 | }, 66 | { 67 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 68 | "NodeType": "InputNode", 69 | "Parameter": { 70 | "Name": "refresh", 71 | "TypeName": "bool", 72 | "TypeRank": 0, 73 | "DefaultValue": "true", 74 | "Description": "Toggle to refresh" 75 | }, 76 | "Id": "d9c8410423ec470fb17d1978df27c655", 77 | "Inputs": [], 78 | "Outputs": [ 79 | { 80 | "Id": "17a6729cd9694eeaa8e1a94a14a8adf0", 81 | "Name": "", 82 | "Description": "Symbol", 83 | "UsingDefaultValue": false, 84 | "Level": 2, 85 | "UseLevels": false, 86 | "KeepListStructure": false 87 | } 88 | ], 89 | "Replication": "Disabled", 90 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "8ddc85d9e8604ea794ad2d28fa9ec1a6", 96 | "End": "3d7c5eaf5083444d9a783577bec262a7", 97 | "Id": "d64d8d86a3784ca3a45130a90754cace" 98 | }, 99 | { 100 | "Start": "17a6729cd9694eeaa8e1a94a14a8adf0", 101 | "End": "595c36b00a034ccc903141514b3a5849", 102 | "Id": "1c57b231cfd24632b89407ac15e64c12" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "f65196056acd44979c2148bd619213f5", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Output", 144 | "Id": "cda915221b50432fbf13ffb8f15887e6", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 449.00000000000006, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Input", 154 | "Id": "d9c8410423ec470fb17d1978df27c655", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": -37.150901296270234, 159 | "Y": 1.7495521545564543 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 88.808301499360113, 164 | "Y": 171.93931819923267, 165 | "Zoom": 0.74769281712332525 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/SheetsIsPlaceholder.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "38683940-084b-43c2-a430-f199fce27a4b", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a list of sheets, returns a boolean as to whether they are placeholders.", 6 | "Name": "© Sheets.IsPlaceholder", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nsheets = uwlist(IN[0])\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList([s.IsPlaceholder for s in sheets])", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "d6a16a34547c451c9bdf70947c6f5113", 20 | "Inputs": [ 21 | { 22 | "Id": "1cf12ead0493491eaffcf76fd9af80d5", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "3cd8d620179b457bb72cc028b40f1488", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "sheets", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "6dc1940c89f64554920ff2a4cd0b40ea", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "15ace4c236674736a62ac08014660fab", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "isPlaceholder", 76 | "Id": "4eee4d6fcf354f0183cfc1cb19d61580", 77 | "Inputs": [ 78 | { 79 | "Id": "b4ae4acfbb52444c98d4939a4020a64a", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "3cd8d620179b457bb72cc028b40f1488", 96 | "End": "b4ae4acfbb52444c98d4939a4020a64a", 97 | "Id": "2355552ba60d49269329a631dcbabe9f" 98 | }, 99 | { 100 | "Start": "15ace4c236674736a62ac08014660fab", 101 | "End": "1cf12ead0493491eaffcf76fd9af80d5", 102 | "Id": "2a2a81010f854021bd92f8793474b22b" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "d6a16a34547c451c9bdf70947c6f5113", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "6dc1940c89f64554920ff2a4cd0b40ea", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 0.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "4eee4d6fcf354f0183cfc1cb19d61580", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 448.99999999999977, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -130.27299807118806, 164 | "Y": 339.21556829832224, 165 | "Zoom": 1.3461330608298456 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/SheetsRevisions.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "68664a88-c7eb-48c9-aee7-dafb15ee7a5a", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a sheet, returns all revisions associated with that sheet as elements.", 6 | "Name": "© Sheets.Revisions", 7 | "ElementResolver": { 8 | "ResolutionMap": { 9 | "DSCore.List": { 10 | "Key": "DSCore.List", 11 | "Value": "DSCoreNodes.dll" 12 | } 13 | } 14 | }, 15 | "Inputs": [], 16 | "Outputs": [], 17 | "Nodes": [ 18 | { 19 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 20 | "NodeType": "PythonScriptNode", 21 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nsheet_list = uwlist(IN[0])\r\nsheet_revs = []\r\n\r\n# Get revisions per sheet\r\nfor s in sheet_list:\r\n\tids = s.GetAllRevisionIds()\r\n\trevs = [s.Document.GetElement(r) for r in ids]\r\n\tsheet_revs.append(revs)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(sheet_revs)", 22 | "Engine": "CPython3", 23 | "VariableInputPorts": true, 24 | "Id": "8c704cc5b11e441883b776afdab12b4e", 25 | "Inputs": [ 26 | { 27 | "Id": "eef0ea87b09b43e9996a6b2936c02956", 28 | "Name": "IN[0]", 29 | "Description": "Input #0", 30 | "UsingDefaultValue": false, 31 | "Level": 2, 32 | "UseLevels": false, 33 | "KeepListStructure": false 34 | } 35 | ], 36 | "Outputs": [ 37 | { 38 | "Id": "407681003f2d459ba99f2242292b882f", 39 | "Name": "OUT", 40 | "Description": "Result of the python script", 41 | "UsingDefaultValue": false, 42 | "Level": 2, 43 | "UseLevels": false, 44 | "KeepListStructure": false 45 | } 46 | ], 47 | "Replication": "Disabled", 48 | "Description": "Runs an embedded Python script." 49 | }, 50 | { 51 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 52 | "NodeType": "InputNode", 53 | "Parameter": { 54 | "Name": "sheets", 55 | "TypeName": "var", 56 | "TypeRank": -1, 57 | "DefaultValue": null, 58 | "Description": "" 59 | }, 60 | "Id": "0aee5d1c31ea428aa8bb4fe4c7b26fc2", 61 | "Inputs": [], 62 | "Outputs": [ 63 | { 64 | "Id": "a3f4759f906a4387bbb43fa0481fc110", 65 | "Name": "", 66 | "Description": "Symbol", 67 | "UsingDefaultValue": false, 68 | "Level": 2, 69 | "UseLevels": false, 70 | "KeepListStructure": false 71 | } 72 | ], 73 | "Replication": "Disabled", 74 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 75 | }, 76 | { 77 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 78 | "NodeType": "OutputNode", 79 | "ElementResolver": null, 80 | "Symbol": "revisions", 81 | "Id": "f324e83cfdb342fd8349233d981b106e", 82 | "Inputs": [ 83 | { 84 | "Id": "5a10101b54da4def95474c4b23840ebb", 85 | "Name": "", 86 | "Description": "", 87 | "UsingDefaultValue": false, 88 | "Level": 2, 89 | "UseLevels": false, 90 | "KeepListStructure": false 91 | } 92 | ], 93 | "Outputs": [], 94 | "Replication": "Disabled", 95 | "Description": "A function output, use with custom nodes" 96 | } 97 | ], 98 | "Connectors": [ 99 | { 100 | "Start": "407681003f2d459ba99f2242292b882f", 101 | "End": "5a10101b54da4def95474c4b23840ebb", 102 | "Id": "8ba2739a803a49a1bc67886ba97c6c9a" 103 | }, 104 | { 105 | "Start": "a3f4759f906a4387bbb43fa0481fc110", 106 | "End": "eef0ea87b09b43e9996a6b2936c02956", 107 | "Id": "1de748e8241e4f3680117968711b6a8b" 108 | } 109 | ], 110 | "Dependencies": [], 111 | "NodeLibraryDependencies": [], 112 | "Author": "None provided", 113 | "Bindings": [], 114 | "View": { 115 | "Dynamo": { 116 | "ScaleFactor": 1.0, 117 | "HasRunWithoutCrash": false, 118 | "IsVisibleInDynamoLibrary": true, 119 | "Version": "2.12.1.8246", 120 | "RunType": "Manual", 121 | "RunPeriod": "1000" 122 | }, 123 | "Camera": { 124 | "Name": "Background Preview", 125 | "EyeX": -17.0, 126 | "EyeY": 24.0, 127 | "EyeZ": 50.0, 128 | "LookX": 12.0, 129 | "LookY": -13.0, 130 | "LookZ": -58.0, 131 | "UpX": 0.0, 132 | "UpY": 1.0, 133 | "UpZ": 0.0 134 | }, 135 | "NodeViews": [ 136 | { 137 | "ShowGeometry": true, 138 | "Name": "Python Script", 139 | "Id": "8c704cc5b11e441883b776afdab12b4e", 140 | "IsSetAsInput": false, 141 | "IsSetAsOutput": false, 142 | "Excluded": false, 143 | "X": 250.0, 144 | "Y": 0.0 145 | }, 146 | { 147 | "ShowGeometry": true, 148 | "Name": "Input", 149 | "Id": "0aee5d1c31ea428aa8bb4fe4c7b26fc2", 150 | "IsSetAsInput": false, 151 | "IsSetAsOutput": false, 152 | "Excluded": false, 153 | "X": 0.0, 154 | "Y": 0.0 155 | }, 156 | { 157 | "ShowGeometry": true, 158 | "Name": "Output", 159 | "Id": "f324e83cfdb342fd8349233d981b106e", 160 | "IsSetAsInput": false, 161 | "IsSetAsOutput": false, 162 | "Excluded": false, 163 | "X": 449.0, 164 | "Y": 0.0 165 | } 166 | ], 167 | "Annotations": [], 168 | "X": 27.885223947155282, 169 | "Y": 311.15245695410522, 170 | "Zoom": 1.0246202921591936 171 | } 172 | } -------------------------------------------------------------------------------- /Crumple/dyf/SpacesGetType.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "9163bcd3-a51c-42e4-867a-b9ea5d487875", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Gets a Space's Type as well as it's name and Id.", 6 | "Name": "© Spaces.GetType", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n\tresult = input if isinstance(input, list) else [input]\r\n\treturn UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nelements = uwlist(IN[0])\r\n\r\n# Prepare empty lists\r\nspaceTypes = []\r\n\r\n# Find space type Id and convert to element\r\nfor e in elements:\r\n\tspaceType = e.Document.GetElement(e.SpaceTypeId)\r\n\tspaceTypes.append(spaceType)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(spaceTypes)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f2871e5eaeaa4e7881bacc272b2af717", 20 | "Inputs": [ 21 | { 22 | "Id": "77eef7429b9e404ab18fcc2de1f9c8e5", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "198ed0f27e804858936a085e885f8462", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "spaces", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "A space or list of spaces." 54 | }, 55 | "Id": "0dd3657aed0b4a8e9b87001d396a67f3", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "8ad4726ae33540908a60bbba52c76534", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "//As an element.\r\nspaceTypes", 76 | "Id": "b2ab0eb8b82e421ea7d563e77fc54e95", 77 | "Inputs": [ 78 | { 79 | "Id": "4141bf9c8dfa48b1934c713808853ccf", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "198ed0f27e804858936a085e885f8462", 96 | "End": "4141bf9c8dfa48b1934c713808853ccf", 97 | "Id": "610635d14a47499dbb583c59966e3fcf" 98 | }, 99 | { 100 | "Start": "8ad4726ae33540908a60bbba52c76534", 101 | "End": "77eef7429b9e404ab18fcc2de1f9c8e5", 102 | "Id": "9cb1cdc183ed4ef5a61b3eb73e75c1a3" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "f2871e5eaeaa4e7881bacc272b2af717", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "0dd3657aed0b4a8e9b87001d396a67f3", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -110.38575667655766, 149 | "Y": -1.186943620177999 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "b2ab0eb8b82e421ea7d563e77fc54e95", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 411.59803346770218, 159 | "Y": 3.3162075932873165 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -360.79941744185726, 164 | "Y": 150.39828147357565, 165 | "Zoom": 1.400767416869013 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/StringCaseSplit.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "617443b6-d636-4928-81af-3de7ab53fb34", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Data.Create", 5 | "Description": "Splits one or multiple strings into sublists, broken down at each upper case character.", 6 | "Name": "© String.CaseSplit", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n#Import Regex (regular expressions)\r\nimport re\r\n\r\n# Define list/unwrap list functions\r\ndef tolist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return result\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n#Turn data into a list for iteration\r\nlst = tolist(IN[0])\r\n\r\n#Empty list, apply regex for capital letters\r\ndataout = []\r\n\r\nfor str in lst:\r\n\tcaps = re.findall('[A-Z][^A-Z]*', str)\r\n\tdataout.append(caps)\r\n\r\n#Define output\r\nOUT = objOrList(dataout)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "17a5fcc0977a49c088a6a41d634a2b02", 20 | "Inputs": [ 21 | { 22 | "Id": "f7f5dc88380643b9b88745ba1ea9ec1a", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "61a4b6bb45eb4ce79083f1fe65e0e6ed", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "strings", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "Strings for splitting" 54 | }, 55 | "Id": "82b6aac3871d419687175939f31b336c", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "1686584005af4c22b1ca3aae27e0bab0", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "//Lists of sub-strings,\r\n//grouped per owning string.\r\noutput", 76 | "Id": "517b4c1faea14ea58d463bbfc0a6f1b5", 77 | "Inputs": [ 78 | { 79 | "Id": "9038ee8d97204642bf9b01756f12b57f", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "61a4b6bb45eb4ce79083f1fe65e0e6ed", 96 | "End": "9038ee8d97204642bf9b01756f12b57f", 97 | "Id": "47de2720d67c490dab316225738eb2d3" 98 | }, 99 | { 100 | "Start": "1686584005af4c22b1ca3aae27e0bab0", 101 | "End": "f7f5dc88380643b9b88745ba1ea9ec1a", 102 | "Id": "379ea4c2c34c40a2a75426d0221c8e30" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "17a5fcc0977a49c088a6a41d634a2b02", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "82b6aac3871d419687175939f31b336c", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -80.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "517b4c1faea14ea58d463bbfc0a6f1b5", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 449.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 132.0, 164 | "Y": 174.0, 165 | "Zoom": 1.0 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/UILogoPath.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "e39dbce7-6589-434f-bf4e-ba2ead0ac990", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Script.Query", 5 | "Description": "Returns the file path of your 'My Documents' folder, then the file 'logo.png'. If you store your logo here you can call on it reliably for Data Shapes interfaces.", 6 | "Name": "© UI.LogoPath", 7 | "ElementResolver": { 8 | "ResolutionMap": { 9 | "DSCore.List": { 10 | "Key": "DSCore.List", 11 | "Value": "DSCoreNodes.dll" 12 | } 13 | } 14 | }, 15 | "Inputs": [], 16 | "Outputs": [], 17 | "Nodes": [ 18 | { 19 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 20 | "NodeType": "PythonScriptNode", 21 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n# Thanks to Sean Page for suggesting the os package\r\n\r\n# Boilerplate text\r\nimport clr\r\nimport os\r\n\r\nuser = os.environ.get('USERNAME')\r\nfl = os.environ.get('USERPROFILE')\r\n\r\nmd = fl + \"\\Documents\" + \"\\logo.png\"\r\n\r\nOUT = md", 22 | "Engine": "CPython3", 23 | "VariableInputPorts": true, 24 | "Id": "a5788f2da2514201b86177190bc1f65e", 25 | "Inputs": [ 26 | { 27 | "Id": "b919e18776b940b1b8af25214fb23700", 28 | "Name": "IN[0]", 29 | "Description": "Input #0", 30 | "UsingDefaultValue": false, 31 | "Level": 2, 32 | "UseLevels": false, 33 | "KeepListStructure": false 34 | } 35 | ], 36 | "Outputs": [ 37 | { 38 | "Id": "60deddb56da942d1bc9f49317677b9a8", 39 | "Name": "OUT", 40 | "Description": "Result of the python script", 41 | "UsingDefaultValue": false, 42 | "Level": 2, 43 | "UseLevels": false, 44 | "KeepListStructure": false 45 | } 46 | ], 47 | "Replication": "Disabled", 48 | "Description": "Runs an embedded Python script." 49 | }, 50 | { 51 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 52 | "NodeType": "OutputNode", 53 | "ElementResolver": null, 54 | "Symbol": "path", 55 | "Id": "18db889a72b44150bf6e6f57457401a3", 56 | "Inputs": [ 57 | { 58 | "Id": "8bd785f187ba47588c19cc45bdfdb798", 59 | "Name": "", 60 | "Description": "", 61 | "UsingDefaultValue": false, 62 | "Level": 2, 63 | "UseLevels": false, 64 | "KeepListStructure": false 65 | } 66 | ], 67 | "Outputs": [], 68 | "Replication": "Disabled", 69 | "Description": "A function output, use with custom nodes" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 73 | "NodeType": "InputNode", 74 | "Parameter": { 75 | "Name": "refresh", 76 | "TypeName": "bool", 77 | "TypeRank": 0, 78 | "DefaultValue": "True", 79 | "Description": "" 80 | }, 81 | "Id": "3fd71cef91544771a96aa6daa11ebb72", 82 | "Inputs": [], 83 | "Outputs": [ 84 | { 85 | "Id": "54fedccd1c224e6ab1e406f11bb7d029", 86 | "Name": "", 87 | "Description": "Symbol", 88 | "UsingDefaultValue": false, 89 | "Level": 2, 90 | "UseLevels": false, 91 | "KeepListStructure": false 92 | } 93 | ], 94 | "Replication": "Disabled", 95 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 96 | } 97 | ], 98 | "Connectors": [ 99 | { 100 | "Start": "60deddb56da942d1bc9f49317677b9a8", 101 | "End": "8bd785f187ba47588c19cc45bdfdb798", 102 | "Id": "578413bf2e9949619076eb933b5c6932" 103 | }, 104 | { 105 | "Start": "54fedccd1c224e6ab1e406f11bb7d029", 106 | "End": "b919e18776b940b1b8af25214fb23700", 107 | "Id": "7be124d1745b4b5a8ba1bbe8e3af820e" 108 | } 109 | ], 110 | "Dependencies": [], 111 | "NodeLibraryDependencies": [], 112 | "Author": "None provided", 113 | "Bindings": [], 114 | "View": { 115 | "Dynamo": { 116 | "ScaleFactor": 1.0, 117 | "HasRunWithoutCrash": false, 118 | "IsVisibleInDynamoLibrary": true, 119 | "Version": "2.12.1.8246", 120 | "RunType": "Manual", 121 | "RunPeriod": "1000" 122 | }, 123 | "Camera": { 124 | "Name": "Background Preview", 125 | "EyeX": -17.0, 126 | "EyeY": 24.0, 127 | "EyeZ": 50.0, 128 | "LookX": 12.0, 129 | "LookY": -13.0, 130 | "LookZ": -58.0, 131 | "UpX": 0.0, 132 | "UpY": 1.0, 133 | "UpZ": 0.0 134 | }, 135 | "NodeViews": [ 136 | { 137 | "ShowGeometry": true, 138 | "Name": "Python Script", 139 | "Id": "a5788f2da2514201b86177190bc1f65e", 140 | "IsSetAsInput": false, 141 | "IsSetAsOutput": false, 142 | "Excluded": false, 143 | "X": 250.0, 144 | "Y": 0.0 145 | }, 146 | { 147 | "ShowGeometry": true, 148 | "Name": "Output", 149 | "Id": "18db889a72b44150bf6e6f57457401a3", 150 | "IsSetAsInput": false, 151 | "IsSetAsOutput": false, 152 | "Excluded": false, 153 | "X": 423.00000000000011, 154 | "Y": 1.0 155 | }, 156 | { 157 | "ShowGeometry": true, 158 | "Name": "Input", 159 | "Id": "3fd71cef91544771a96aa6daa11ebb72", 160 | "IsSetAsInput": false, 161 | "IsSetAsOutput": false, 162 | "Excluded": false, 163 | "X": 21.0, 164 | "Y": -1.0 165 | } 166 | ], 167 | "Annotations": [], 168 | "X": 107.0, 169 | "Y": 143.0, 170 | "Zoom": 1.0 171 | } 172 | } -------------------------------------------------------------------------------- /Crumple/dyf/VectorFromString.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "02d1a157-7c2d-47c6-85b2-68983e6904b1", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Geometry.Create", 5 | "Description": "Given a string form of a vector (X = x.xxx, Y = x.xxx, Z = x.xxx), return the equivalent vector. Note that if the original vector was more precise than 3 significant figures, it will be now only accurate to this many.", 6 | "Name": "© Vector.FromString", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\nclr.AddReference('ProtoGeometry')\r\nfrom Autodesk.DesignScript.Geometry import *\r\n\r\n# Preparing input from dynamo to revit\r\nstrs = IN[0] if isinstance(IN[0], list) else [IN[0]]\r\n\r\nvectors = []\r\n\r\n# Convert string to vector format\r\nfor s in strs:\r\n\txind = s.index('X = ')\r\n\tyind = s.index('Y = ')\r\n\tzind = s.index('Z = ')\r\n\t\r\n\tx = float(s[xind+4:xind+9])\r\n\ty = float(s[yind+4:yind+9])\r\n\tz = float(s[zind+4:zind+9])\r\n\t\r\n\tv = Vector.ByCoordinates(x,y,z)\r\n\tvectors.append(v)\r\n\r\n# Preparing output to Dynamo\r\nOUT = vectors", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "b1ba004e98404780b85543da896d1aa8", 20 | "Inputs": [ 21 | { 22 | "Id": "aa89b06125094fe49097ed755f650eb4", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "a4bbbbeac45b4b56839739d7011bdec7", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "strings", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "A string or list of strings\nin a vector based format." 54 | }, 55 | "Id": "a6d58517a4504cac95c9e93e7f38fd13", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "55b394e841c845c18dc90acba1ac8882", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "//Equivalent vectors\r\nvectors", 76 | "Id": "d53bf49e0193418aaa41b3c536c341e9", 77 | "Inputs": [ 78 | { 79 | "Id": "eeeabe3d59114d03b2fa7ee1592b6874", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "a4bbbbeac45b4b56839739d7011bdec7", 96 | "End": "eeeabe3d59114d03b2fa7ee1592b6874", 97 | "Id": "f72d43e59e044ca0bab60f9563074557" 98 | }, 99 | { 100 | "Start": "55b394e841c845c18dc90acba1ac8882", 101 | "End": "aa89b06125094fe49097ed755f650eb4", 102 | "Id": "23546a5172964f88a5e821672e891f4d" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "b1ba004e98404780b85543da896d1aa8", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "a6d58517a4504cac95c9e93e7f38fd13", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -95.648640696441589, 149 | "Y": -1.4945100108818679 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "d53bf49e0193418aaa41b3c536c341e9", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 449.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -339.35075524434149, 164 | "Y": 237.75902589479091, 165 | "Zoom": 1.545620359375 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/ViewSheetSetsViews.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "9cb4a0f7-6359-4ccb-9a64-96cd315a78c6", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Return all views and sheets in the view sheet set(s).", 6 | "Name": "© ViewSheetSets.Views", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nsheetSets = uwlist(IN[0])\r\nviewsOut = []\r\n\r\nfor vss in sheetSets:\r\n\tvssViews = [v for v in vss.Views]\r\n\tviewsOut.append(vssViews)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(viewsOut)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "3f8b13395aff4adc934bf60e265eb3cc", 20 | "Inputs": [ 21 | { 22 | "Id": "2f001edf2da84e029b163c66be9cd89b", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "587e5611046b4351a8e0bf77add20ddc", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "viewSheetSet", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "11310179043243858733bddbbe31a44d", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "67a67e096009483d9b48e99510b11c7c", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "views", 76 | "Id": "78fc71695e624dc4ba7c184a9f1d266a", 77 | "Inputs": [ 78 | { 79 | "Id": "d227b5ffb6434111b6123c10b1c63799", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "587e5611046b4351a8e0bf77add20ddc", 96 | "End": "d227b5ffb6434111b6123c10b1c63799", 97 | "Id": "105936688dd74c3d861e11f17a2b7393" 98 | }, 99 | { 100 | "Start": "67a67e096009483d9b48e99510b11c7c", 101 | "End": "2f001edf2da84e029b163c66be9cd89b", 102 | "Id": "c9679946c7544cfeaa5bd636e99e69ae" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "3f8b13395aff4adc934bf60e265eb3cc", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "11310179043243858733bddbbe31a44d", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": -52.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "78fc71695e624dc4ba7c184a9f1d266a", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 449.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 193.0, 164 | "Y": 189.0, 165 | "Zoom": 1.0 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/WarningsMessage.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "e72f013c-1a38-46e7-830c-735d8abbcd03", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Revit.Query", 5 | "Description": "Given a warning element in Revit db format, will return the message associated with that warning in a generic string format.", 6 | "Name": "© Warnings.Message", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\n\r\n# Define list/unwrap list functions\r\ndef uwlist(input):\r\n result = input if isinstance(input, list) else [input]\r\n return UnwrapElement(result)\r\n\r\ndef objOrList(input, initial = IN[0]):\r\n\tif isinstance(initial, list):\r\n\t\treturn input\r\n\telse:\r\n\t\treturn input[0]\r\n\r\n# Preparing input from dynamo to revit\r\nwarnings = uwlist(IN[0])\r\n\r\nmessages = []\r\n\r\n# Get messages\r\nfor w in warnings:\r\n\tmessage = w.GetDescriptionText()\r\n\tmessages.append(message)\r\n\r\n# Preparing output to Dynamo\r\nOUT = objOrList(messages)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "f0d92742b59d4f81881c8abd63b93070", 20 | "Inputs": [ 21 | { 22 | "Id": "64cc3f16da524d249453de1b5c91baa4", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "3508a438fcf64e8f9f4557ddcbbf45c9", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "warning", 50 | "TypeName": "var", 51 | "TypeRank": -1, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "38e3994307d748aba1a3f2906fa9095d", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "f12e4a7fa9da45a4ac340c91d6a3ce5d", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "message", 76 | "Id": "f3725ef9de094fe79d677ef0c77c3e2c", 77 | "Inputs": [ 78 | { 79 | "Id": "fb5d6c15078c4291b1d445f652bbf149", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "3508a438fcf64e8f9f4557ddcbbf45c9", 96 | "End": "fb5d6c15078c4291b1d445f652bbf149", 97 | "Id": "038a4efdd1a54e4882d6ea89984ec0a6" 98 | }, 99 | { 100 | "Start": "f12e4a7fa9da45a4ac340c91d6a3ce5d", 101 | "End": "64cc3f16da524d249453de1b5c91baa4", 102 | "Id": "52b5225687d54ee6b0074e88a7ceef31" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "f0d92742b59d4f81881c8abd63b93070", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "38e3994307d748aba1a3f2906fa9095d", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 37.0, 149 | "Y": -1.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "f3725ef9de094fe79d677ef0c77c3e2c", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 404.00000000000023, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -183.6144018691877, 164 | "Y": 363.80609558296629, 165 | "Zoom": 1.7429108187799611 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/WindowsClipboardSend.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "2e28abd1-5659-43b5-8182-4570980e8289", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Application.Actions", 5 | "Description": "Attempts to send data to the clipboard.", 6 | "Name": "© Windows.ClipboardSend", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Boilerplate\r\nimport clr\r\nimport System\r\nfrom System.Threading import Thread, ThreadStart\r\nclr.AddReference(\"System.Windows.Forms\")\r\n\r\n# Define function\r\ndef SetText(text):\r\n def thread_proc():\r\n System.Windows.Forms.Clipboard.SetText(text)\r\n t = Thread(ThreadStart(thread_proc))\r\n t.ApartmentState = System.Threading.ApartmentState.STA\r\n t.Start()\r\n\r\ntry:\r\n\tif IN[0] != \"\" and IN[0] != None:\r\n\t\tSetText(IN[0])\r\n\t\tOUT = True\r\n\telse:\r\n\t\tOUT = False\r\nexcept:\r\n\tOUT = False", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "6533ea609a4b4576b0faa80041178c7c", 20 | "Inputs": [ 21 | { 22 | "Id": "f37ba9f004684562b55c3b8adaaffc82", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "e7557be302a142bda660ddd7c03ac6e2", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 47 | "NodeType": "InputNode", 48 | "Parameter": { 49 | "Name": "dataToCopy", 50 | "TypeName": "var", 51 | "TypeRank": 0, 52 | "DefaultValue": null, 53 | "Description": "" 54 | }, 55 | "Id": "eef99dd8250b4ef2af6d1f844e67c77e", 56 | "Inputs": [], 57 | "Outputs": [ 58 | { 59 | "Id": "006d75a944b246fab96ffd895bef1a58", 60 | "Name": "", 61 | "Description": "Symbol", 62 | "UsingDefaultValue": false, 63 | "Level": 2, 64 | "UseLevels": false, 65 | "KeepListStructure": false 66 | } 67 | ], 68 | "Replication": "Disabled", 69 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 70 | }, 71 | { 72 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 73 | "NodeType": "OutputNode", 74 | "ElementResolver": null, 75 | "Symbol": "success", 76 | "Id": "ab72dcb4f2004319b58ffb163dd604af", 77 | "Inputs": [ 78 | { 79 | "Id": "3b404f6facaf4b77af3f41ff53e1a639", 80 | "Name": "", 81 | "Description": "", 82 | "UsingDefaultValue": false, 83 | "Level": 2, 84 | "UseLevels": false, 85 | "KeepListStructure": false 86 | } 87 | ], 88 | "Outputs": [], 89 | "Replication": "Disabled", 90 | "Description": "A function output, use with custom nodes" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "e7557be302a142bda660ddd7c03ac6e2", 96 | "End": "3b404f6facaf4b77af3f41ff53e1a639", 97 | "Id": "dae36a6aa9e9410b94d7b9375956872e" 98 | }, 99 | { 100 | "Start": "006d75a944b246fab96ffd895bef1a58", 101 | "End": "f37ba9f004684562b55c3b8adaaffc82", 102 | "Id": "940cb92552e1484392c7981182a9649b" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "6533ea609a4b4576b0faa80041178c7c", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Input", 144 | "Id": "eef99dd8250b4ef2af6d1f844e67c77e", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 38.142945212196992, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Output", 154 | "Id": "ab72dcb4f2004319b58ffb163dd604af", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 454.0, 159 | "Y": 0.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -79.843482346806269, 164 | "Y": 367.68569689632773, 165 | "Zoom": 2.8797850227800854 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/WindowsDirectoryOpen.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "c12295c8-d8aa-4a21-878c-e212cdb7c66c", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Application.Actions", 5 | "Description": "Attempts to open a directory path.", 6 | "Name": "© Windows.DirectoryOpen", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 15 | "NodeType": "InputNode", 16 | "Parameter": { 17 | "Name": "directoryPath", 18 | "TypeName": "string", 19 | "TypeRank": 0, 20 | "DefaultValue": null, 21 | "Description": "" 22 | }, 23 | "Id": "ff83c3876f0c493d8d8bc9c3f1c94642", 24 | "Inputs": [], 25 | "Outputs": [ 26 | { 27 | "Id": "506091ed94fb4641b9a39336bdf46edd", 28 | "Name": "", 29 | "Description": "Symbol", 30 | "UsingDefaultValue": false, 31 | "Level": 2, 32 | "UseLevels": false, 33 | "KeepListStructure": false 34 | } 35 | ], 36 | "Replication": "Disabled", 37 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 38 | }, 39 | { 40 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 41 | "NodeType": "OutputNode", 42 | "ElementResolver": null, 43 | "Symbol": "wasOpened", 44 | "Id": "f07f44af446640158fd21ade2c185993", 45 | "Inputs": [ 46 | { 47 | "Id": "27b01f8d986f4082ae6a98e7936f4dfb", 48 | "Name": "", 49 | "Description": "", 50 | "UsingDefaultValue": false, 51 | "Level": 2, 52 | "UseLevels": false, 53 | "KeepListStructure": false 54 | } 55 | ], 56 | "Outputs": [], 57 | "Replication": "Disabled", 58 | "Description": "A function output, use with custom nodes" 59 | }, 60 | { 61 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 62 | "NodeType": "PythonScriptNode", 63 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\nimport os\r\n\r\n# Define list/unwrap list functions\r\npartPath = IN[0]\r\n\r\n# Try to open path\r\ndirPath = partPath + \"\\\\\"\r\n\r\ntry:\r\n\tos.startfile(dirPath)\r\n\tOUT = True\r\nexcept:\r\n\tOUT = False", 64 | "Engine": "CPython3", 65 | "VariableInputPorts": true, 66 | "Id": "70756ca6da21407899a9d1b37c3cd3a5", 67 | "Inputs": [ 68 | { 69 | "Id": "3356008da6714638b221dccc3de0bab0", 70 | "Name": "IN[0]", 71 | "Description": "Input #0", 72 | "UsingDefaultValue": false, 73 | "Level": 2, 74 | "UseLevels": false, 75 | "KeepListStructure": false 76 | } 77 | ], 78 | "Outputs": [ 79 | { 80 | "Id": "27e1894f87b147da961ca61d2ed4e700", 81 | "Name": "OUT", 82 | "Description": "Result of the python script", 83 | "UsingDefaultValue": false, 84 | "Level": 2, 85 | "UseLevels": false, 86 | "KeepListStructure": false 87 | } 88 | ], 89 | "Replication": "Disabled", 90 | "Description": "Runs an embedded Python script." 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "506091ed94fb4641b9a39336bdf46edd", 96 | "End": "3356008da6714638b221dccc3de0bab0", 97 | "Id": "8e99ff22a2da48b587a3ee29433d07f9" 98 | }, 99 | { 100 | "Start": "27e1894f87b147da961ca61d2ed4e700", 101 | "End": "27b01f8d986f4082ae6a98e7936f4dfb", 102 | "Id": "d65882d4a29249e1ad33a5ba490044bd" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Input", 134 | "Id": "ff83c3876f0c493d8d8bc9c3f1c94642", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 72.0, 139 | "Y": 142.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Output", 144 | "Id": "f07f44af446640158fd21ade2c185993", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 485.0, 149 | "Y": 140.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Python Script", 154 | "Id": "70756ca6da21407899a9d1b37c3cd3a5", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": 324.0, 159 | "Y": 142.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": -150.62669245647967, 164 | "Y": 19.292069632495156, 165 | "Zoom": 2.5087040618955512 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/dyf/WindowsPrinters.dyf: -------------------------------------------------------------------------------- 1 | { 2 | "Uuid": "1d157339-7d4f-4d70-9eda-40e336e853d7", 3 | "IsCustomNode": true, 4 | "Category": "Crumple.Application.Query", 5 | "Description": "Returns all print driver names installed on the machine.", 6 | "Name": "© Windows.Printers", 7 | "ElementResolver": { 8 | "ResolutionMap": {} 9 | }, 10 | "Inputs": [], 11 | "Outputs": [], 12 | "Nodes": [ 13 | { 14 | "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", 15 | "NodeType": "PythonScriptNode", 16 | "Code": "# Made by Gavin Crump\r\n# Free for use\r\n# BIM Guru, www.bimguru.com.au\r\n\r\n# Boilerplate text\r\nimport clr\r\nclr.AddReference('System.Drawing')\r\n\r\nimport System\r\nfrom System import Drawing\r\n\r\n# Preparing output to Dynamo\r\nOUT = list(Drawing.Printing.PrinterSettings.InstalledPrinters)", 17 | "Engine": "CPython3", 18 | "VariableInputPorts": true, 19 | "Id": "07faf33fce9e4304bef18565da2938be", 20 | "Inputs": [ 21 | { 22 | "Id": "bfbf6c9a0fc54d1cbfa9bd95172a4a2e", 23 | "Name": "IN[0]", 24 | "Description": "Input #0", 25 | "UsingDefaultValue": false, 26 | "Level": 2, 27 | "UseLevels": false, 28 | "KeepListStructure": false 29 | } 30 | ], 31 | "Outputs": [ 32 | { 33 | "Id": "6e61bee67e174a37a31b7d4a64a2ff60", 34 | "Name": "OUT", 35 | "Description": "Result of the python script", 36 | "UsingDefaultValue": false, 37 | "Level": 2, 38 | "UseLevels": false, 39 | "KeepListStructure": false 40 | } 41 | ], 42 | "Replication": "Disabled", 43 | "Description": "Runs an embedded Python script." 44 | }, 45 | { 46 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Output, DynamoCore", 47 | "NodeType": "OutputNode", 48 | "ElementResolver": null, 49 | "Symbol": "printerNames", 50 | "Id": "edab99c658d343ccaf2a4187c6b1bbdd", 51 | "Inputs": [ 52 | { 53 | "Id": "a95ba6f8d4bc4af682cd1bbc1fb9283e", 54 | "Name": "", 55 | "Description": "", 56 | "UsingDefaultValue": false, 57 | "Level": 2, 58 | "UseLevels": false, 59 | "KeepListStructure": false 60 | } 61 | ], 62 | "Outputs": [], 63 | "Replication": "Disabled", 64 | "Description": "A function output, use with custom nodes" 65 | }, 66 | { 67 | "ConcreteType": "Dynamo.Graph.Nodes.CustomNodes.Symbol, DynamoCore", 68 | "NodeType": "InputNode", 69 | "Parameter": { 70 | "Name": "refresh", 71 | "TypeName": "bool", 72 | "TypeRank": 0, 73 | "DefaultValue": "true", 74 | "Description": "" 75 | }, 76 | "Id": "7a1f7dd9eac44b93a6e6f12022490480", 77 | "Inputs": [], 78 | "Outputs": [ 79 | { 80 | "Id": "ac290d6c47264ca69ea32a9e98fb6167", 81 | "Name": "", 82 | "Description": "Symbol", 83 | "UsingDefaultValue": false, 84 | "Level": 2, 85 | "UseLevels": false, 86 | "KeepListStructure": false 87 | } 88 | ], 89 | "Replication": "Disabled", 90 | "Description": "A function parameter, use with custom nodes.\r\n\r\nYou can specify the type and default value for parameter. E.g.,\r\n\r\ninput : var[]..[]\r\nvalue : bool = false" 91 | } 92 | ], 93 | "Connectors": [ 94 | { 95 | "Start": "6e61bee67e174a37a31b7d4a64a2ff60", 96 | "End": "a95ba6f8d4bc4af682cd1bbc1fb9283e", 97 | "Id": "e240128eb8b14194b49a0ebd18b9b591" 98 | }, 99 | { 100 | "Start": "ac290d6c47264ca69ea32a9e98fb6167", 101 | "End": "bfbf6c9a0fc54d1cbfa9bd95172a4a2e", 102 | "Id": "a73c50754fd74076bde39c66d18980a2" 103 | } 104 | ], 105 | "Dependencies": [], 106 | "NodeLibraryDependencies": [], 107 | "Author": "None provided", 108 | "Bindings": [], 109 | "View": { 110 | "Dynamo": { 111 | "ScaleFactor": 1.0, 112 | "HasRunWithoutCrash": false, 113 | "IsVisibleInDynamoLibrary": true, 114 | "Version": "2.12.1.8246", 115 | "RunType": "Manual", 116 | "RunPeriod": "1000" 117 | }, 118 | "Camera": { 119 | "Name": "Background Preview", 120 | "EyeX": -17.0, 121 | "EyeY": 24.0, 122 | "EyeZ": 50.0, 123 | "LookX": 12.0, 124 | "LookY": -13.0, 125 | "LookZ": -58.0, 126 | "UpX": 0.0, 127 | "UpY": 1.0, 128 | "UpZ": 0.0 129 | }, 130 | "NodeViews": [ 131 | { 132 | "ShowGeometry": true, 133 | "Name": "Python Script", 134 | "Id": "07faf33fce9e4304bef18565da2938be", 135 | "IsSetAsInput": false, 136 | "IsSetAsOutput": false, 137 | "Excluded": false, 138 | "X": 250.0, 139 | "Y": 0.0 140 | }, 141 | { 142 | "ShowGeometry": true, 143 | "Name": "Output", 144 | "Id": "edab99c658d343ccaf2a4187c6b1bbdd", 145 | "IsSetAsInput": false, 146 | "IsSetAsOutput": false, 147 | "Excluded": false, 148 | "X": 449.0, 149 | "Y": 0.0 150 | }, 151 | { 152 | "ShowGeometry": true, 153 | "Name": "Input", 154 | "Id": "7a1f7dd9eac44b93a6e6f12022490480", 155 | "IsSetAsInput": false, 156 | "IsSetAsOutput": false, 157 | "Excluded": false, 158 | "X": -43.0, 159 | "Y": -1.0 160 | } 161 | ], 162 | "Annotations": [], 163 | "X": 45.0, 164 | "Y": 220.0, 165 | "Zoom": 1.0 166 | } 167 | } -------------------------------------------------------------------------------- /Crumple/extra/PythonTemplate.py: -------------------------------------------------------------------------------- 1 | # Made by Gavin Crump 2 | # Free for use 3 | # BIM Guru, www.bimguru.com.au 4 | 5 | # Boilerplate text 6 | import clr 7 | 8 | import sys 9 | sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib') 10 | 11 | import System 12 | from System import Array 13 | from System.Collections.Generic import * 14 | 15 | clr.AddReference('ProtoGeometry') 16 | from Autodesk.DesignScript.Geometry import * 17 | 18 | clr.AddReference("RevitNodes") 19 | import Revit 20 | clr.ImportExtensions(Revit.Elements) 21 | clr.ImportExtensions(Revit.GeometryConversion) 22 | 23 | clr.AddReference("RevitServices") 24 | import RevitServices 25 | from RevitServices.Persistence import DocumentManager 26 | from RevitServices.Transactions import TransactionManager 27 | 28 | clr.AddReference("RevitAPI") 29 | clr.AddReference("RevitAPIUI") 30 | 31 | import Autodesk 32 | from Autodesk.Revit.DB import * 33 | from Autodesk.Revit.UI import * 34 | 35 | # Current doc/app/ui 36 | doc = DocumentManager.Instance.CurrentDBDocument 37 | uiapp = DocumentManager.Instance.CurrentUIApplication 38 | app = uiapp.Application 39 | uidoc = uiapp.ActiveUIDocument 40 | 41 | # Define list/unwrap list functions 42 | def tolist(input): 43 | result = input if isinstance(input, list) else [input] 44 | return result 45 | 46 | def uwlist(input): 47 | result = input if isinstance(input, list) else [input] 48 | return UnwrapElement(result) 49 | 50 | def objOrList(input): 51 | if isinstance(input, list) and len(input) == 1: 52 | return input[0] 53 | else: 54 | return input 55 | 56 | # Preparing input from dynamo to revit 57 | element = IN[0] 58 | elements = tolist(IN[0]) 59 | uw_list = uwlist(IN[0]) 60 | 61 | # Do some action in a Transaction 62 | TransactionManager.Instance.EnsureInTransaction(doc) 63 | # your actions 64 | TransactionManager.Instance.TransactionTaskDone() 65 | 66 | # Output and Changing element to Dynamo for export 67 | # .ToDSType(True), #Not created in script, mark as Revit-owned 68 | # .ToDSType(False) #Created in script, mark as non-Revit-owned 69 | 70 | # Preparing output to Dynamo 71 | OUT = element -------------------------------------------------------------------------------- /Script samples/Excel/Crumple_AddParameters.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aussieBIMguru/Crumple/43aa6b46d83316084a2b826c904add6763fd59d3/Script samples/Excel/Crumple_AddParameters.xlsx -------------------------------------------------------------------------------- /Script samples/Excel/Crumple_ReplaceParameters.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aussieBIMguru/Crumple/43aa6b46d83316084a2b826c904add6763fd59d3/Script samples/Excel/Crumple_ReplaceParameters.xlsx -------------------------------------------------------------------------------- /Script samples/Excel/Crumple_SetFormulae.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aussieBIMguru/Crumple/43aa6b46d83316084a2b826c904add6763fd59d3/Script samples/Excel/Crumple_SetFormulae.xlsx -------------------------------------------------------------------------------- /Script samples/Excel/familyValuesExport.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aussieBIMguru/Crumple/43aa6b46d83316084a2b826c904add6763fd59d3/Script samples/Excel/familyValuesExport.xlsx -------------------------------------------------------------------------------- /Script samples/Excel/familyValuesImport.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aussieBIMguru/Crumple/43aa6b46d83316084a2b826c904add6763fd59d3/Script samples/Excel/familyValuesImport.xlsx --------------------------------------------------------------------------------