Is it possible to transfer View Maps between projects using only the public Archicad API?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2025-06-19 02:27 PM
Hello Archicad community,
I’m developing an Add-On for Archicad (still relatively new to API development) and researching the feasibility of creating a tool to transfer View Maps between different projects. After reviewing the public API documentation, I have a fundamental question:
Is this even possible to implement using only the public Archicad API?
Here’s what I’ve found so far:
The Navigator API module provides access to View Map elements
There are functions to read view parameters (ACAPI_Navigator_GetNavigatorView)
Methods exist to create new views (ACAPI_Navigator_NewNavigatorView)
However, I have concerns about:
Whether these functions are sufficient to fully recreate view structures
How to properly transfer all related data (layer settings, scales, etc.)
The limitation of working with only the active project
Specific questions:
Are there any "showstopper" limitations in the public API for this task?
Has anyone attempted something similar and can share their experience?
What are the potential pitfalls I should anticipate?
I’m particularly interested in whether this is fundamentally possible with public API, or if it requires access to internal APIs. Any advice or pointers would be greatly appreciated!
Thank you in advance for your help.
- Labels:
-
Discussion
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2025-07-01 10:51 AM - edited 2025-07-01 01:03 PM
It is possible to create views with the API. It should also be possible to create them with properties extracted from another project, but I can see a potential problem. A 'view' captures the state of some part of an Archicad project, e.g. a plan view of a specific storey or a section cut through the model. The content of every project may be different, e.g. storeys, sections, worksheets etc, so the views from one project may have no equivalent in another project. Are you expecting these projects to share a common structure?
Central Innovation
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2025-07-03 08:29 AM
Yes, the projects are based on a shared structure. In our workflow (residential complexes split into sections), each section is developed in a separate file using a common template.
Over time, the View Map structure evolves, and syncing it manually across multiple files becomes time-consuming and error-prone.
My goal is not to transfer views directly but to automate the recreation of equivalent views in other projects, based on a reference file — including all relevant parameters like layer combinations, scale, model view options, etc.
Are there any examples of reading a view with all its parameters and creating a new one programmatically using the public API?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2025-07-04 10:54 AM
I don't think there are examples for everything concerning navigator items like views, but it's best to study examples like "Navigator_Test" to get an overview. In general:
- Use ACAPI_Navigator_GetNavigatorItem to collect information about a view from the source project. You will need to store/persist this data somehow if you want to replicate it into other projects, e.g. serialise it into a file.
- Use ACAPI_Navigator_NewNavigatorView to create a new view in the target project. In some cases this returns APIERR_BADNAME, in which case you need to follow up with ACAPI_Navigator_ChangeNavigatorView to set all the view properties.
- You may need to use ACAPI_Navigator_SetNavigatorItemPosition to move the created view to the required position in the navigator hierarchy.
Central Innovation