Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9874d29cd3 | |||
| 83876e7898 | |||
| 76d6c1c72a |
@@ -12,7 +12,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.7
|
- uses: actions/checkout@v4.1.7
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: '3.11'
|
python-version: '3.11'
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|

|
||||||
|
|
||||||
# 🚀 Automate Revit Rooms and Areas Scheduling – No Coding Required
|
# 🚀 Automate Revit Rooms and Areas Scheduling – No Coding Required
|
||||||
|
|
||||||
Easily export all **Rooms** and **Areas** by Level into an Excel file in seconds, ensuring **accurate and up-to-date project data**. This automation **eliminates manual effort**, **reduces errors**, and provides a **structured format** for further analysis.
|
Easily export all **Rooms** and **Areas** by Level into an Excel file in seconds, ensuring **accurate and up-to-date project data**. This automation **eliminates manual effort**, **reduces errors**, and provides a **structured format** for further analysis.
|
||||||
|
|||||||
@@ -45,43 +45,43 @@ class FunctionInputs(AutomateBase):
|
|||||||
nua_list: str = Field(
|
nua_list: str = Field(
|
||||||
title="NUA (Optional)",
|
title="NUA (Optional)",
|
||||||
description="Nett Usable Area",
|
description="Nett Usable Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
nia_list: str = Field(
|
nia_list: str = Field(
|
||||||
title="NIA (Optional)",
|
title="NIA (Optional)",
|
||||||
description="Nett Internal Area",
|
description="Nett Internal Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
nla_list: str = Field(
|
nla_list: str = Field(
|
||||||
title="NLA (Optional)",
|
title="NLA (Optional)",
|
||||||
description="Nett Leasable Area",
|
description="Nett Leasable Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
gia_list: str = Field(
|
gia_list: str = Field(
|
||||||
title="GIA (Optional)",
|
title="GIA (Optional)",
|
||||||
description="Gross Internal Area",
|
description="Gross Internal Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
gea_list: str = Field(
|
gea_list: str = Field(
|
||||||
title="GEA (Optional)",
|
title="GEA (Optional)",
|
||||||
description="Gross External Area",
|
description="Gross External Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
gla_list: str = Field(
|
gla_list: str = Field(
|
||||||
title="GLA (Optional)",
|
title="GLA (Optional)",
|
||||||
description="Gross Leasable Area",
|
description="Gross Leasable Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
gba_list: str = Field(
|
gba_list: str = Field(
|
||||||
title="GBA (Optional)",
|
title="GBA (Optional)",
|
||||||
description="Gross Building Area",
|
description="Gross Building Area",
|
||||||
default= " "
|
default= ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -129,20 +129,18 @@ def automate_function(
|
|||||||
return
|
return
|
||||||
|
|
||||||
items = []
|
items = []
|
||||||
id_lists = []
|
|
||||||
|
|
||||||
for i in all_objects:
|
for i in all_objects:
|
||||||
if hasattr(i, "category"): # Check if the object has the "category" attribute
|
if hasattr(i, "category"): # Check if the object has the "category" attribute
|
||||||
if i.category in filter_categories: # Check if the category matches the filter list
|
if i.category in filter_categories: # Check if the category matches the filter list
|
||||||
items.append(i) # Append the whole object to the items list
|
items.append(i) # Append the whole object to the items list
|
||||||
id_lists.append(i.id)
|
|
||||||
else:
|
else:
|
||||||
continue # Skip if "category" does not exist
|
continue # Skip if "category" does not exist
|
||||||
|
|
||||||
# List of properties
|
# List of properties
|
||||||
list_prop = [
|
list_prop = [
|
||||||
"category",
|
"category",
|
||||||
"properties.Level.name",
|
"level",
|
||||||
"properties.Parameters.Instance Parameters.Identity Data.Name.value",
|
"properties.Parameters.Instance Parameters.Identity Data.Name.value",
|
||||||
"properties.Parameters.Instance Parameters.Dimensions.Area.value",
|
"properties.Parameters.Instance Parameters.Dimensions.Area.value",
|
||||||
]
|
]
|
||||||
@@ -194,7 +192,7 @@ def automate_function(
|
|||||||
automate_context.store_file_result(f"./{output_file}")
|
automate_context.store_file_result(f"./{output_file}")
|
||||||
automate_context.mark_run_success("All data sent successfully! Download your file below.")
|
automate_context.mark_run_success("All data sent successfully! Download your file below.")
|
||||||
except:
|
except:
|
||||||
automate_context.mark_run_failed("An error occurred while writing to the file. Ensure that the parameters 'Level,' 'Name,' and 'Area' exist. Additionally, verify that the area/room names are correctly typed and separated by commas.")
|
automate_context.mark_run_failed("An error occurred while writing to the file. Ensure that the parameters Areas or Rooms category exist. Additionally, verify that the area/room names are correctly typed and separated by commas.")
|
||||||
|
|
||||||
|
|
||||||
# Function to sum area for each group, ensuring missing levels return 0
|
# Function to sum area for each group, ensuring missing levels return 0
|
||||||
|
|||||||
@@ -22,9 +22,11 @@ def test_function_run(test_automation_run_data: AutomationRunData, test_automati
|
|||||||
automate_sdk = run_function(
|
automate_sdk = run_function(
|
||||||
automation_context,
|
automation_context,
|
||||||
automate_function,
|
automate_function,
|
||||||
|
|
||||||
|
#These are test inputs, only work when testing localy.
|
||||||
FunctionInputs(
|
FunctionInputs(
|
||||||
file_name="TestNameABC",
|
file_name="TestName",
|
||||||
inlcude_areas= True,
|
inlcude_areas= False,
|
||||||
inlcude_rooms= True,
|
inlcude_rooms= True,
|
||||||
nua_list = "Elevator E1, Level 5 Gross, Live/Work Unit, Machine RM",
|
nua_list = "Elevator E1, Level 5 Gross, Live/Work Unit, Machine RM",
|
||||||
nia_list = "",
|
nia_list = "",
|
||||||
|
|||||||
Reference in New Issue
Block a user