#file-format #dotbim #bim #aec

dotbim_rust

开源的dotbim文件格式Rust库

2个版本

0.1.1 2024年8月18日
0.1.0 2024年8月18日

#125数据格式

Download history 60/week @ 2024-08-12

每月 60次下载

MIT 协议

67KB
1.5K SLoC

dotbim_rust Crates.io 版本

描述

dotbim文件格式的开源Rust库。

关于dotbim的更多信息请参阅此处: https://github.com/paireks/dotbim

dotbim的网站: https://dotbim.net/

在此您可以找到有关开发将处理.bim文件格式的工具的简明手册: https://github.com/paireks/dotbim/blob/master/DeveloperTips.md

安装

https://crates.io/crates/dotbim_rust

运行以下命令

cargo add dotbim_rust

示例

通常您可以检查单元测试来查看多个示例。但是以下是一个示例

金字塔示例

let mesh = Mesh::new(
    0,
    vec![
        // Base
        0.0,0.0,0.0,
        10.0,0.0,0.0,
        10.0,10.0,0.0,
        0.0,10.0,0.0,

        // Top
        5.0,5.0,4.0
    ],
    vec![
        // Base faces
        0,1,2,
        0,2,3,

        // Side faces
        0,1,4,
        1,2,4,
        2,3,4,
        3,0,4
    ]
);

let mut info: HashMap<String, String> = HashMap::new();
info.insert(String::from("Name"), String::from("Pyramid"));

let mut file_info: HashMap<String, String> = HashMap::new();
file_info.insert(String::from("Author"), String::from("John Doe"));
file_info.insert(String::from("Date"), String::from("28.09.1999"));

let element = Element::new(
    0,
    Vector::new(0.,0.,0.),
    Rotation::new(0., 0., 0., 1.),
    String::from("76e051c1-1bd7-44fc-8e2e-db2b64055068"),
    String::from("Structure"),
    Color::new(255,255,0,255),
    None,
    info,
);

let file: File = File::new(String::from("1.0.0"),
                     vec![mesh],
                     vec![element],
                     file_info);

let file_serialized = to_string(&file);

let file_serialized_string = file_serialized.ok().unwrap();

let path = "created_files/Pyramid.bim";

fs::write(path, file_serialized_string).expect("Unable to write the file");

然后您可以在现有的查看器之一中检查文件是否保存正确,或者通过连接器。

它应该是这样的

image

使用的库

依赖项

~1.2–2.1MB
~44K SLoC