diff --git a/bb.bat b/bb.bat new file mode 100644 index 0000000000..67e19f9720 --- /dev/null +++ b/bb.bat @@ -0,0 +1,114 @@ +@echo off + +setlocal enabledelayedexpansion + +:: Ensure script runs from its own directory +cd /d "%~dp0" + +:: Use pushd/popd in case we need to return later +pushd . + + +rem ADAPT setting REPO_PATH to use custom path for IfcOpenShell repository. +rem Otherwise by default it is assumed script is executed from IfcOpenShell directory. +SET REPO_PATH=D:\Dropbox\GitHub\IfcOpenShell +SET BLENDER_PATH=%HOMEDRIVE%\Users\%USERNAME%\AppData\Roaming\Blender Foundation\Blender\4.2 +SET PACKAGE_PATH=%BLENDER_PATH%\extensions\.local\lib\python3.11\site-packages +SET BONSAI_PATH=%BLENDER_PATH%\extensions\user_default\bonsai +rem Note: if you originally installed Bonsai via Blender's extension the path will be... +rem BONSAI_PATH=%BLENDER_PATH%\extensions\user_default\bonsai + +echo SETUP BONSAI ADD-ON LIVE DEVELOPMENT ENVIRONMENT +echo Update REPO_PATH, BLENDER_PATH, PACKAGE_PATH, BONSAI_PATH in the script above. +echo This script needs to be run as administrator (to create symbolic links) +echo Make sure you have followed these steps before proceeding :) +echo. +echo Currently set paths: +if not defined REPO_PATH ( + echo REPO_PATH is not set, assuming we're already in IfcOpenShell directory. + set REPO_PATH=%cd% +) +rem Print summary of paths +echo. +echo Please review if the following is right: +echo PWD: %CD% +echo REPO PATH (.....\IfcOpenshell): %REPO_PATH% +echo BLENDER PATH: %BLENDER_PATH% +echo PACKAGE PATH (.....\extensions\.local\lib\python3.11\site-packages): %PACKAGE_PATH% +echo BONSAI PATH (.....\extensions\raw_githubusercontent_com\bonsai): %BONSAI_PATH% +echo. +rem Prompt user to continue +pause + + +echo Changing to the Git repository directory... +cd %REPO_PATH% + +:: Handle symlinks (they could be disabled by default on Windows). +git config --local core.symlinks true + +:: Delete and checkout is the only way to ensure files are added as symlinks. +del /Q src\bonsai\bonsai\bim\data\templates\projects\*.ifc +git checkout -- src/bonsai/bonsai/bim/data/templates/projects/*.ifc + +rem Add files that need to be ignored in push to GitHub (.gitignore) +set "FILE=.gitignore" +set "STRING=*.so" + +rem Check if the file exists and contains the string +if not exist "%FILE%" ( + echo %STRING% >> "%FILE%" + echo "%FILE%" does not exist + echo Added '%STRING%' to %FILE% +) else ( + findstr /L "%STRING%" "%FILE%" >nul + if errorlevel 1 ( + echo %STRING% >> "%FILE%" + echo %STRING% not found in %FILE% + echo Added %STRING% to %FILE% + ) else ( + echo '%STRING%' already exists in %FILE% + ) +) + +echo Copy over compiled IfcOpenShell files... +copy "%PACKAGE_PATH%\ifcopenshell\*_wrapper*" "%CD%\src\ifcopenshell-python\ifcopenshell\" + +echo Remove extension and link to Git... +del "%BONSAI_PATH%\__init__.py" +rd /S /Q "%PACKAGE_PATH%\bonsai" +rd /S /Q "%PACKAGE_PATH%\ifcopenshell" +del "%PACKAGE_PATH%\ifccsv.py" +del "%PACKAGE_PATH%\ifcdiff.py" +del "%PACKAGE_PATH%\bsdd.py" +rd /S /Q "%PACKAGE_PATH%\bcf" +rd /S /Q "%PACKAGE_PATH%\ifc4d" +rd /S /Q "%PACKAGE_PATH%\ifc5d" +rd /S /Q "%PACKAGE_PATH%\ifccityjson" +rd /S /Q "%PACKAGE_PATH%\ifcclash" +rd /S /Q "%PACKAGE_PATH%\ifcpatch" +rd /S /Q "%PACKAGE_PATH%\ifctester" +rd /S /Q "%PACKAGE_PATH%\ifcfm" + +mklink "%BONSAI_PATH%\__init__.py" "%CD%\src\bonsai\bonsai\__init__.py" +mklink /D "%PACKAGE_PATH%\bonsai" "%CD%\src\bonsai\bonsai" +mklink /D "%PACKAGE_PATH%\ifcopenshell" "%CD%\src\ifcopenshell-python\ifcopenshell" +mklink "%PACKAGE_PATH%\ifccsv.py" "%CD%\src\ifccsv\ifccsv.py" +mklink "%PACKAGE_PATH%\ifcdiff.py" "%CD%\src\ifcdiff\ifcdiff.py" +mklink "%PACKAGE_PATH%\bsdd.py" "%CD%\src\bsdd\bsdd.py" +mklink /D "%PACKAGE_PATH%\bcf" "%CD%\src\bcf\bcf" +mklink /D "%PACKAGE_PATH%\ifc4d" "%CD%\src\ifc4d\ifc4d" +mklink /D "%PACKAGE_PATH%\ifc5d" "%CD%\src\ifc5d\ifc5d" +mklink /D "%PACKAGE_PATH%\ifccityjson" "%CD%\src\ifccityjson\ifccityjson" +mklink /D "%PACKAGE_PATH%\ifcclash" "%CD%\src\ifcclash\ifcclash" +mklink /D "%PACKAGE_PATH%\ifcpatch" "%CD%\src\ifcpatch\ifcpatch" +mklink /D "%PACKAGE_PATH%\ifctester" "%CD%\src\ifctester\ifctester" +mklink /D "%PACKAGE_PATH%\ifcfm" "%CD%\src\ifcfm\ifcfm" + +echo Manually downloading some third party dependencies... +curl https://raw.githubusercontent.com/jsGanttImproved/jsgantt-improved/master/dist/jsgantt.js -o "%PACKAGE_PATH%\bonsai\bim\data\gantt\jsgantt.js" +curl https://raw.githubusercontent.com/jsGanttImproved/jsgantt-improved/master/dist/jsgantt.css -o "%PACKAGE_PATH%\bonsai\bim\data\gantt\jsgantt.css" +curl -L https://github.com/BrickSchema/Brick/releases/download/nightly/Brick.ttl -o "%PACKAGE_PATH%\bonsai\bim\data\brick\Brick.ttl" + +popd +pause \ No newline at end of file diff --git a/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json b/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json index 1afe8852e4..ea520e028b 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json +++ b/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json @@ -31,16 +31,6 @@ "predefined_type": "TOPPING" } ], - "IfcDistributionElement": [ - { - "name": "Furnace" - } - ], - "IfcDistributionElementType": [ - { - "name": "Furnace" - } - ], "IfcElectricDistributionBoard": [ { "name": "Circuit Breaker Panel", @@ -140,6 +130,41 @@ "IfcUnitaryEquipment": [ { "name": "Fan Coil Unit" + }, + { + "name": "Roof Top Unit (RTU)", + "predefined_type": "ROOFTOPUNIT" + }, + { + "name": "Furnace" + }, + { + "name": "Central air conditioner (split or package)", + "predefined_type": "AIRCONDITIONINGUNIT" + }, + { + "name": "Mini-split system", + "predefined_type": "SPLITSYSTEM" + } + ], + "IfcUnitaryEquipmentType": [ + { + "name": "Fan Coil Unit" + }, + { + "name": "Roof Top Unit (RTU)", + "predefined_type": "ROOFTOPUNIT" + }, + { + "name": "Furnace" + }, + { + "name": "Central air conditioner (split or package)", + "predefined_type": "AIRCONDITIONINGUNIT" + }, + { + "name": "Mini-split system", + "predefined_type": "SPLITSYSTEM" } ], "IfcWall": [