キャンセル
提案をオンにする
自動提案では、入力時に可能な一致が提案されるので検索結果を素早く絞り込むことができます。
次の結果を表示 
次の代わりに検索 
もしかして: 
  • フォーラム
    • インストール&アップデート
    • ライセンス
    • モデリング
    • ライブラリ&オブジェクト
    • ドキュメント
    • ビジュアライズ
    • BIMx
    • プロジェクト管理
    • パラメトリックデザイン
    • サスティナブルデザイン
    • チームワーク&BIMcloud
    • OPEN BIM
    • フリートーク
    • Our Community
  • ナレッジベース
    • インストール&アップデート
    • ライセンス
    • Archicadをはじめよう
    • モデリング
    • ライブラリ&オブジェクト
    • ドキュメント
    • ビジュアライズ
    • BIMx
    • プロジェクト管理
    • チームワーク&BIMcloud
    • OPEN BIM
    • Communityの使い方
  • Building Together
    • Insights
    • Archicadユーザーグループ
      • ユーザーグループ紹介
      • ユーザーグループからのお知らせ
      • Archicadユーザーグループマガジン
      • 施工ユーザーグループ メンバー専用
      • ワークフロー研究会
    • USERFEST
      • USERFEST 2022
      • USERFEST 2023
      • USERFEST 2024
      • USERFEST 2025
    • チャレンジ(コンテスト)
      • Your Best Design Option
    • BIM相談室
      • BIM相談室 配信
    • How to use Archicad - NEW
    • ウィッシュリスト
    • ロードマップ
  • 製品ヘルプ
  • Forward会員専用
    • スキルアップ動画
search
ヘルプサインイン
キャンセル
提案をオンにする
自動提案では、入力時に可能な一致が提案されるので検索結果を素早く絞り込むことができます。
次の結果を表示 
次の代わりに検索 
もしかして: 
  • 日本コミュニティ
  • :
  • フォーラム
  • :
  • ライブラリ&オブジェクト
  • :
  • 【検証】Archicadで広大なゾーンを作った時の不思議な話(FRA()の最大値)
オプション
  • RSS フィードを購読する
  • トピックを新着としてマーク
  • トピックを既読としてマーク
  • このトピックを現在のユーザーにフロートします
  • ブックマーク
  • この話題を購読する
  • ミュート
  • 印刷用ページ
ライブラリ&オブジェクト
GDL、ArchicadとBIMcloudのライブラリ、ライブラリの管理と移行、オブジェクトとその他のライブラリオブジェクトなどに関するフォーラムです。

【検証】Archicadで広大なゾーンを作った時の不思議な話(FRA()の最大値)

Kotetsu
Kotetsu
Expert
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-05-05 10:03 PM - 編集済み ‎2023-05-05 10:05 PM

‎2023-05-05 10:03 PM

条件

  • ゾーンラベルではなくゾーンスタンプを使用している場合
  • ゾーンの面積が21,474,836.47㎡(≒2千万㎡)を超える場合

である場合のみ起きる現象です。

そのためゾーンラベルがデフォルトになったArchicad26ではあまり起きない現象と思われますが、検証したら面白いことがわかったので共有します。(雑談程度のノリで見てください)

 

 

現象

モデル表示オプションでチェックを入れると26でもゾーンスタンプを表示することができます。

Kotetsu_0-1683288605784.png

 

で、ゾーンスタンプを表示した状態で広大な面積のゾーンを作成したら不思議なことが起こりました。

Kotetsu_1-1683288726064.png

5000m x 5000mのゾーンを作成したら、ゾーンスタンプの値がおかしな事になったのです!

面積がマイナス??なんじゃこりゃ🤔

 

この現象は4000m x 4000mでは起こりません。

Kotetsu_2-1683289235896.png

 

色々検証した結果、面積が21,474,836.47㎡を超えると数値がバグることがわかりました。

現在はゾーンラベルを使っている方が多いでしょうし、そもそもこれだけの面積のゾーンを使うことも無いと思うのであまり心配することは無いでしょうが・・・。

 

 

検証

一定規模を超えるとNG?でもなんでラベルはOKでスタンプはNGなんだろう?

その謎を解明すべく我々はアマゾンの奥地へと向かったゾーンスタンプをCtrl + Shift+Oで開いてみました。

 

⚠️マニアックな内容が含まれます。ご注意ください。

 

Kotetsu_3-1683289521671.png

詳細は省きますが、怪しい変数の中身を見ていくと原因らしき記述にたどり着きました。

if iAreaprec = 5 then
	m2keta = 2	: bairitu = 100
endif

!~~~中略~~~

if iDisp_Prec = 1 then
	a_meter = _calculatedArea * bairitu
	a_meter = (a_meter - FRA(a_meter))/bairitu
endif

結果的に、このなかでも後半の「FRA(a_meter)」が問題でした。

このFRA関数は()の中の数値の小数部分のみを返すするものですが、()の中の数値が2,147,483,648を超えると小数部分では無く、値+2,147,483,648を返してしまうようです。

(ここの値が面積でNGになる限界の100倍になっているのは上記の処理でbairitu = 100を掛けているため)

つまりFRA(3,000,000,000.55)とすると本当は0.55が返ってくるはずなのに5,147,483,648.55が返ってきてしまいます。

そのため、5000m x 5000m の例では

25,000,000 - (25,000,000 + 21,474,836.48) = -21,474,836.48㎡

という値が表示されてしまっていると思われます。

 

 

考察

プログラムを書かれる方なら多分ピンと来ていると思いますが、「2,147,483,647」という数値はint型の最大値です。

ということは、FRA()関数の整数部分が内部でintで処理されていて、intの最大値を超えるとオーバーフローしている?

ここまで行くとプログラマーでは無い私には手に負えないので詳しい人がいたら解説お願いします🙏

あとおかしな記述があればツッコミ歓迎です。

とりあえず、FRA関数を使うときは気をつけた方が良さそうです。

 

 

最後に

Archicadはあくまで建築系のBIMソフトなので、あまりにも広大な面積を処理するようにはできていません。

今回のこと以外にも不具合が出がちなので、広大な敷地に建物が点在するような場合は、ひとつひとつの建物を別ファイルにして、別のソフトウェアで統合した方が良いでしょう。

 

 


▼ウィッシュリスト(投票が集まるとGSの検討対象になります。賛同してくださる方は投票をお願いします!)
「仕上げツール」を本体機能に | 「メッシュから屋根を作成」を本体機能に | フロアレベルからメッシュ点高度 | 躯体以外を表示 | メッシュ頂点に一括ラベル | 断面形状パラメータパレット | STB取込みで梁端部を柱面 | RFAをパラメトリック | レイヤーセットを現在の設定で更新 | ひとつひとつの線の線種/色/表示非表示を変更できる機能(ラインワーク) | 「線として表示」としてもBIMx上で通り芯を表示 | 部材の始点/終点座標を一覧表とプロパティで取得 | 通り芯と要素の連動 | 表現の上書きに数式
Win10 / 13th Gen Corei7 / 32GB RAM / RTX2000Ada Laptop
AC17 - 27 / ACUG
ラベル:
  • ラベル:
  • GDL
  • その他
11 件のいいね!
返信
  • すべてのフォーラムトピック
  • 前のトピック
  • 次のトピック
1件の返信1
TOMIMARI
TOMIMARI
Advocate
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-05-08 11:50 AM

‎2023-05-08 11:50 AM

そこまで突き詰めて原因を特定する事が可能なんて凄いです。

INTは小数点以下切り捨て出来るけど、永遠ではないという事ですね。

マニアックで奥深い話ですが、刺激を受ける内容でとても面白いですね。

3 件のいいね!
返信
返信を見逃したくないですか?
トピックを購読する

回答が見つかりませんでしたか?

このフォーラムで
他の記事をチェック

フォーラムへ戻る

最新の解決策をチェック

採用された解決策

新しいディスカッションを始める

投稿する

フォーラム

  • インストール&アップデート
  • ライセンス
  • モデリング
  • ライブラリ&オブジェクト
  • ドキュメント
  • ビジュアライズ
  • BIMx
  • プロジェクト管理
  • パラメトリックデザイン
  • サスティナブルデザイン
  • チームワーク&BIMcloud
  • OPEN BIM
  • フリートーク
  • Our Community

ナレッジベース

  • インストール&アップデート
  • ライセンス
  • Archicadをはじめよう
  • モデリング
  • ライブラリ&オブジェクト
  • ドキュメント
  • ビジュアライズ
  • BIMx
  • プロジェクト管理
  • チームワーク&BIMcloud
  • OPEN BIM
  • Communityの使い方

Building Together

  • Graphisoft Insights
  • Archicadユーザーグループ
  • USERFEST
  • チャレンジ(コンテスト)
  • BIM相談室
  • How to use Archicad - NEW
  • ウィッシュリスト
  • 製品ロードマップ
Powered by Khoros
Copyright © 2025 GRAPHISOFT. All rights reserved.
  • プライバシーポリシー
  • 利用規約
  • コミュニティ投稿ガイドライン

GraphisoftはNemetschekのグループ企業です