Skip to content

Conversation

@Wurschdhaud
Copy link
Contributor

Description

I'm proposing a very basic excel ex- and import tool, for users that not need the full functionality of advanced tools like diroots.

Features:

  • can be configured to export complete document elements, instances in current view or schedules
  • allows selection of element types/families/... to export for document and instances
  • allows selection of parameters to export for document and instances
  • parametervalues missing or readonly are locked and colored in the export to avoid accidental modification
  • measurables can be exported and imported as projectunits, internalunits or valuestrings
  • after modification inside excel the import excel tool allows feeding the file back into the project

no pretty interface, sticking to library commands and forms for user input.


Checklist

Before submitting your pull request, ensure the following requirements are met:

  • Code follows the PEP 8 style guide.
  • Code has been formatted with Black using the command:
    pipenv run black {source_file_or_directory}
  • Changes are tested and verified to work as expected.

Related Issues

If applicable, link the issues resolved by this pull request:

  • Resolves #[issue number]

Additional Notes

image image image

Include any additional context, screenshots, or considerations for reviewers.


Thank you for contributing to pyRevit! 🎉

@devloai
Copy link
Contributor

devloai bot commented Oct 18, 2025

Unable to perform a code review. You have run out of credits 😔
Please upgrade your plan or buy additional credits from the subscription page.

@tay0thman
Copy link
Contributor

This is can be a great addition to the toolkit.
I'll review it this evening (Pacific time)

@tay0thman
Copy link
Contributor

tay0thman commented Oct 20, 2025

@Wurschdhaud
was the intent of this tool being to only import / export type parameters? I think adding an option to import / export instance params as well as type parameters will be essential for this script to function.

I really like this addition to pyrevit, it makes parameter manipulation open and accessible to everyone without buying the expensive BIMlink

Before getting into clean coding, I downloaded the scripts and I am going to play with them for the next 2 days so I will provide you with some feedback.

@Wurschdhaud
Copy link
Contributor Author

Wurschdhaud commented Oct 21, 2025

No, i needed only the instance paramaters, but thought it might be nice to have type parameters as well.
I'll have to check if I've commited the wrong code, because I'm 100% certain it worked like that before.

Use I imagined:

  • normal user: schedule in revit predefined to ex-/import
  • quick and dirty: current view/selection export
  • poweruser: all that's in the project

since i thought these usecases are quite fixed, i put them in a config, but it might be good to move them to a commandswitch or sth

Wurschdhaud and others added 2 commits October 21, 2025 08:27
el.Symbol.get_Parameter(DB.BuiltInParameter.SYMBOL_NAME_PARAM).AsString()
instead of
el.Symbol.Name
(only for setting?)
@tay0thman
Copy link
Contributor

tay0thman commented Oct 21, 2025

No, i needed only the instance paramaters, but thought it might be nice to have type parameters as well. I'll have to check if I've commited the wrong code, because I'm 100% certain it worked like that before.

Use I imagined:

  • normal user: schedule in revit predefined to ex-/import
  • quick and dirty: current view/selection export
  • poweruser: all that's in the project

since i thought these usecases are quite fixed, i put them in a config, but it might be good to move them to a commandswitch or sth

I think it works now, It just need more UI clarity, since I need to figure it out which ones are type parameters and which ones are the instance ones.

image

I'd recommend giving the option to "Export Type Parameters", "Expost Instance Parameters" , "Export All" also, I appreciate if you can color code the headers for the users to distinguish between the types of these params (like Cyan indicates instance, Magenta indicates type)

@tay0thman
Copy link
Contributor

If no selection is being made, I'd prefer to terminate the script, if there is an expected error, I'd prefer to use forms.Alert().

all other exceptions can be logged.

image

@Wurschdhaud Wurschdhaud marked this pull request as draft October 21, 2025 17:20
- exit without error when aborting
@Wurschdhaud
Copy link
Contributor Author

Thanks for your input! I like the idea with colorcoding, I'll have to look into the item_template syntax of selectfromlist.

As for exporting: I'm now thinking of a config for two options:
Basic (default) - open the schedule to export menu
Advanced - give options like you mentioned: all elements, in view elements, selected elements, only instances, only types

- changed export scope default: now schedule
- config mode shift-click will launch advanced, which has different export options
@Wurschdhaud
Copy link
Contributor Author

@tay0thman
I added your suggestion for the options. When using shift-click, the pick-and-export process starts, otherwise it'll just be an schedule export. Could give it another try? Then I`ll remove the draft status of the PR

@tay0thman
Copy link
Contributor

@Wurschdhaud this is awesome, I'll clone the repo in few hours and I will let you my thoughts.

Thank you for staying on top of the review.

@jmcouffin
Copy link
Contributor

@Wurschdhaud @tay0thman ready for review?

@Wurschdhaud
Copy link
Contributor Author

Fine from myside, just want a second pair of eyes to have a look

@jmcouffin jmcouffin marked this pull request as ready for review October 29, 2025 10:28
- Added version compatibility checks for parameter data types in both XLS Export and Import scripts.
- Improved handling of Yes/No parameters during data export and import processes.
- Updated docstrings for clarity on function purposes and return values.
- Refined regex pattern for unit postfix matching in the export script.
@jmcouffin
Copy link
Contributor

@Wurschdhaud
Gave it a ride and did a few changes. I had to refrain from going all in and use https://github.com/bimone/addins-excelexporterimporter as a base.
If you are happy with it, I am too, and I will merge
Anything to add @tay0thman ?

@jmcouffin jmcouffin added the Tools Issues related to pyRevit commands [subsystem] label Nov 3, 2025
@tay0thman
Copy link
Contributor

@jmcouffin I like the way it is headed. I have no further concerns with it, We should be good to merge.

I will ask some of my peers, to test it out and we may issue a further PR if there is a bug or a usability issue.

Thank you @Wurschdhaud

@jmcouffin jmcouffin merged commit de74272 into pyrevitlabs:develop Nov 3, 2025
@Wurschdhaud Wurschdhaud deleted the new-tool-simple-xls-ex+import branch November 3, 2025 18:55
@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

📦 New work-in-progress (wip) builds are available for 5.2.0.25307+1935-wip

@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

📦 New work-in-progress (wip) builds are available for 5.2.0.25307+2011-wip

@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

📦 New work-in-progress (wip) builds are available for 5.2.0.25307+2045-wip

@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

📦 New work-in-progress (wip) builds are available for 5.3.0.25307+2237-wip

@github-actions
Copy link
Contributor

github-actions bot commented Nov 4, 2025

📦 New work-in-progress (wip) builds are available for 5.3.0.25308+0721-wip

@github-actions
Copy link
Contributor

github-actions bot commented Nov 4, 2025

📦 New public release are available for 5.3.0.25307+2146

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Tools Issues related to pyRevit commands [subsystem]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants