3 weeks ago
When using ArchiCAD's Python Palette to create records in FileMaker via the Data API (using fmrest), record creation consistently stops at exactly 187 records, regardless of data size or content.
ArchiCAD Python Palette → FileMaker: Always stops at exactly 187 records, then hangs indefinitely with loading icon, even with:
Hanging Behavior: After creating exactly 187 records, the Python script continues showing the loading/execution icon in ArchiCAD but never completes or throws an error. The script must be manually stopped.
Environment Data Source Record Count Result
External Python | Dummy data | 1000+ | ✅ Success |
ArchiCAD Palette | Model data (481 elements) | 187 | ❌ Stops at 187, then hangs |
ArchiCAD Palette | Dummy data | 187 | ❌ Stops at 87, then hangs |
ArchiCAD Palette | Model → Excel | 481+ | ✅ Success |
ArchiCAD's Python environment appears to have a network connection or HTTP request limit of approximately 187 operations per script execution.
# Run inside ArchiCAD Python Palette import fmrest def test_dummy_records(): fms = fmrest.Server( url="https://your-server", user="admin", password="password", database="testdb", layout="testlayout", verify_ssl=False ) fms.login() created = 0 # Try to create 500 dummy records for i in range(500): try: record = {'ElementID': f'TEST_{i:03d}'} fms.create_record(record) created += 1 if created % 50 == 0: print(f"Created {created} records") except Exception as e: print(f"Failed at record {created + 1}: {e}") break fms.logout() print(f"Final count: {created}") # Always shows 187 test_dummy_records()
# Run outside ArchiCAD in regular Python import fmrest def test_external(): fms = fmrest.Server( url="https://your-server", user="admin", password="password", database="testdb", layout="testlayout", verify_ssl=False ) fms.login() created = 0 # Create 500 records - works fine for i in range(500): record = {'ElementID': f'EXTERNAL_{i:03d}'} fms.create_record(record) created += 1 fms.logout() print(f"External created: {created}") # Shows 500 test_external()
# Run inside ArchiCAD Python Palette from archicad import ACConnection def test_archicad_extraction(): conn = ACConnection.connect() acc = conn.commands act = conn.types acu = conn.utilities elements = acc.GetElementsByType('Wall') print(f"Found {len(elements)} elements") # Shows full count (e.g., 481) # This works fine for any number of elements propertyIds = acc.GetPropertyIds([ act.BuiltInPropertyUserId("General_ElementID") ]) props = acu.GetPropertyValuesDictionary(elements, propertyIds) print(f"Processed {len(props)} properties") # Shows full count test_archicad_extraction()
Extract data within ArchiCAD → Save to file → Process externally:
This workaround successfully processes all records but requires two-step process instead of direct integration.
Do you know whether this 187 record limit is:
Thank you for any insights or solutions!