Skip to content

[Bug]: Extension folder can't start with a number #3107

@fbernhart

Description

@fbernhart

✈ Pre-Flight checks

  • I don't have SentinelOne antivirus installed (see above for the solution)
  • I have searched in the issues (open and closed) but couldn't find a similar issue
  • I have searched in the pyRevit Forum for similar issues
  • I already followed the installation troubleshooting guide thoroughly
  • I am using the latest pyRevit Version

🐞 Describe the bug

Just downloaded the newest release (6.1.0) and found this bug - might have already been there in 6.0.0.

When the extension folder starts with a number, I get the following error message on reload.

For example: P:\Users\7pyRevit.extension

If I remove the leading number, it works all fine. (P:\Users\pyRevit.extension)

Revit 2026.4

⌨ Error/Debug Message

ERROR [pyrevit.loader.sessionmgr] Roslyn compilation failed for: 7pyRevit
ERROR [pyrevit.loader.sessionmgr] (7,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (7,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (7,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (7,14): error CS8803: Top-level statements must precede namespace and type declarations.
ERROR [pyrevit.loader.sessionmgr] (7,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (7,70): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (8,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (9,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (9,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (9,55): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (9,55): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (23,6): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (26,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (28,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (28,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (28,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (28,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (28,89): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (29,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (30,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (30,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (30,61): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (30,61): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (30,87): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (33,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (37,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (37,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (37,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (37,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (37,96): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (38,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (39,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (39,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (39,81): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (39,81): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (53,6): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (56,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (60,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (60,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (60,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (60,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (60,95): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (61,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (62,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (62,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (62,80): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (62,80): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (76,6): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (79,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (83,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (83,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (83,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (83,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (83,96): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (84,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (85,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (85,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (85,81): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (85,81): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (99,6): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (102,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (106,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (106,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (106,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (106,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (106,95): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (107,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (108,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (108,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (108,80): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (108,80): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (122,6): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (125,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (129,14): error CS1001: Identifier expected
ERROR [pyrevit.loader.sessionmgr] (129,14): error CS1514: { expected
ERROR [pyrevit.loader.sessionmgr] (129,14): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (129,15): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (129,71): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (130,2): error CS1513: } expected
ERROR [pyrevit.loader.sessionmgr] (131,5): error CS0116: A namespace cannot directly contain members such as fields, methods or statements
ERROR [pyrevit.loader.sessionmgr] (131,13): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (131,56): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (131,56): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (145,6): error CS1002: ; expected
ERROR [pyrevit.loader.sessionmgr] (148,1): error CS1022: Type or namespace definition, or end-of-file expected
ERROR [pyrevit.loader.sessionmgr] (28,14): error CS0101: The namespace '<global namespace>' already contains a definition for ''
ERROR [pyrevit.loader.sessionmgr] (37,14): error CS0101: The namespace '<global namespace>' already contains a definition for ''
ERROR [pyrevit.loader.sessionmgr] (60,14): error CS0101: The namespace '<global namespace>' already contains a definition for ''
ERROR [pyrevit.loader.sessionmgr] (83,14): error CS0101: The namespace '<global namespace>' already contains a definition for ''
ERROR [pyrevit.loader.sessionmgr] (106,14): error CS0101: The namespace '<global namespace>' already contains a definition for ''
ERROR [pyrevit.loader.sessionmgr] (129,14): error CS0101: The namespace '<global namespace>' already contains a definition for ''
ERROR [pyrevit.loader.sessionmgr] (35,2): error CS0579: Duplicate 'Regeneration' attribute
ERROR [pyrevit.loader.sessionmgr] (36,2): error CS0579: Duplicate 'Transaction' attribute
ERROR [pyrevit.loader.sessionmgr] (58,2): error CS0579: Duplicate 'Regeneration' attribute
ERROR [pyrevit.loader.sessionmgr] (59,2): error CS0579: Duplicate 'Transaction' attribute
ERROR [pyrevit.loader.sessionmgr] (81,2): error CS0579: Duplicate 'Regeneration' attribute
ERROR [pyrevit.loader.sessionmgr] (82,2): error CS0579: Duplicate 'Transaction' attribute
ERROR [pyrevit.loader.sessionmgr] (104,2): error CS0579: Duplicate 'Regeneration' attribute
ERROR [pyrevit.loader.sessionmgr] (105,2): error CS0579: Duplicate 'Transaction' attribute
ERROR [pyrevit.loader.sessionmgr] (127,2): error CS0579: Duplicate 'Regeneration' attribute
ERROR [pyrevit.loader.sessionmgr] (128,2): error CS0579: Duplicate 'Transaction' attribute
ERROR [pyrevit.loader.sessionmgr] (7,14): error CS8805: Program using top-level statements must be an executable.
ERROR [pyrevit.loader.sessionmgr] (7,57): error CS0119: 'ScriptCommand' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (9,13): error CS0103: The name 'pyrevit_test_bemaßung_bemaßungpunktiert' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (9,57): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] (28,63): error CS0119: 'ScriptCommandExtendedAvail' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (30,13): error CS0103: The name 'pyrevit_test_bemaßung_bemaßungpunktiert_avail' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (30,63): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] (37,83): error CS0119: 'ScriptCommand' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (39,13): error CS0103: The name 'pyrevit_test_bewehrung_temp_ausblenden_01_gleiche_temp_ausblenden' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (39,83): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] (60,82): error CS0119: 'ScriptCommand' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (62,13): error CS0103: The name 'pyrevit_test_bewehrung_temp_ausblenden_02_andere_temp_ausblenden' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (62,82): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] (83,83): error CS0119: 'ScriptCommand' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (85,13): error CS0103: The name 'pyrevit_test_bewehrung_perm_ausblenden_01_gleiche_perm_ausblenden' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (85,83): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] (106,82): error CS0119: 'ScriptCommand' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (108,13): error CS0103: The name 'pyrevit_test_bewehrung_perm_ausblenden_02_andere_perm_ausblenden' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (108,82): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] (129,58): error CS0119: 'ScriptCommand' is a type, which is not valid in the given context
ERROR [pyrevit.loader.sessionmgr] (131,13): error CS0103: The name 'pyrevit_test_bewehrung_unbeschriftetebew' does not exist in the current context
ERROR [pyrevit.loader.sessionmgr] (131,58): error CS1511: Keyword 'base' is not available in a static method
ERROR [pyrevit.loader.sessionmgr] Error processing extension '7pyRevit': Roslyn compilation failed.

♻️ To Reproduce

Change the name of the ".extension" folder to start with a number & reload.

⏲️ Expected behavior

No response

🖥️ Hardware and Software Setup (please complete the following information)

C:\Users\Florian.Bernhart>pyrevit env
==> Registered Clones (full git repos)
==> Registered Clones (deployed from archive/image)
master | Branch: "master" | Version: "6.1.0.26047+2255" | Path: "C:\Program Files\pyRevit-Master"
==> Attachments
master | Product: "2026 First Customer Ship" | Engine: DEFAULT (2712) | Path: "C:\Program Files\pyRevit-Master" | AllUsers
master | Product: "2025 First Customer Ship" | Engine: DEFAULT (2712) | Path: "C:\Program Files\pyRevit-Master" | AllUsers
master | Product: "2022.1.8" | Engine: DEFAULT (2712) | Path: "C:\Program Files\pyRevit-Master" | AllUsers
master | Product: "2021.1.10" | Engine: DEFAULT (2712) | Path: "C:\Program Files\pyRevit-Master" | AllUsers
==> Installed Extensions
==> Default Extension Search Path
C:\Users\Florian.Bernhart\AppData\Roaming\pyRevit\Extensions
==> Extension Search Paths
==> Extension Sources - Default
https://github.com/pyrevitlabs/pyRevit/raw/master/extensions/extensions.json
==> Extension Sources - Additional
==> Installed Revits
2026 First Customer Ship | Version: 26.0.4.409 | Build: 20250227_1515(x64) | Language: 1033 | Path: "C:\Program Files\Autodesk\Revit 2026\"
2025 First Customer Ship | Version: 25.0.2.419 | Build: 20240307_1300(x64) | Language: 1033 | Path: "C:\Program Files\Autodesk\Revit 2025\"
2022.1.8 | Version: 22.1.80.32 | Build: 20241107_1515(x64) | Language: 1033 | Path: "C:\Program Files\Autodesk\Revit 2022\"
2021.1.10 | Version: 21.1.100.12 | Build: 20240319_1700(x64) | Language: 1033 | Path: "C:\Program Files\Autodesk\Revit 2021\"
==> Running Revit Instances
PID: 12988 | 2026.4 | Version: 26.4.0.32 | Build: 20251103_1515(x64) | Language: 0 | Path: "C:\Program Files\Autodesk\Revit 2026"
==> User Environment
Microsoft Windows 10 [Version 10.0.26200]
Executing User: INTERN\Florian.Bernhart
Active User: INTERN\Florian.Bernhart
Admin Access: No
%APPDATA%: "C:\Users\Florian.Bernhart\AppData\Roaming"
Latest Installed .Net Framework: 10.0.3
No .Net Target Packs are installed.
No .Net-Core Target Packs are installed.
Active CPython Engine Version: 0
pyRevit CLI v6.1.0.26047+2255.64fcf31ad284fe73a7a3ea3fead3a840f8a408eb

Additional context

Seems like the leading number is trimmed somewhere down the line. Because on the first line it still says:
ERROR [pyrevit.loader.sessionmgr] Roslyn compilation failed for: 7pyRevit

While later down it starts without the number:
ERROR [pyrevit.loader.sessionmgr] (9,13): error CS0103: The name 'pyrevit_test_bemaßung_bemaßungpunktiert' does not exist in the current context

Metadata

Metadata

Assignees

Labels

BugBug that stops user from using the tool or a major portion of pyRevit functionality [class]

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions